express之middleware

来源:互联网 发布:linux 修改部分文件名 编辑:程序博客网 时间:2024/05/21 06:39
var express = require('express');var path = require("path");var app = express();app.set('views', './views');app.set('view engine', 'pug');//通过app.use使用中间件,在接收到请求后,按中间件定义顺序依次执行,除非发生异常或者通过res.end完成响应。/*中间件是一个函数,分为两类,常规中间件和错误处理中间件常规中间件有两个或者三个参数,分别是req,res,[next],其中next可省略错误处理中间件有四个参数,分别是err, req, res, next,其中next不可省略在执行过程中发生异常或者next调用时传入一个参数将会执行错误处理中间件。无论错误处理中间件还是常规中间件,都可以通过next继续向下传递。*/app.use(function(req, res, next) {    console.log("Request IP: " + req.url);    console.log("Request date: " + new Date());    next();});var staticPath = path.join(__dirname, "static");app.use(express.static(staticPath));app.use(function(req, res) {    res.status(404);    res.send("File not found!");});//log the error.app.use(function(err, req, res, next){    console.log(err.message);    next();});//错误处理中间件,当以上某中间件发生异常或者在next调用中传入参数,则会进入错误处理中间件。app.use(function(err, req, res, next) {    res.status(500);    res.send("Internal server error.");});app.listen(80, function() {    console.log("App started on port 80");});

0 0
原创粉丝点击