Express 中间件

Express 是个功能极简,完全是由路由和中间件构成一个的web开发框架:从本质上来说,一个Express应用就是在调用各种中间件

中间件是一个函数,它可以访问请求对象,响应对象,和web应用中处于请求-响应循环流程中的中间件,一般被命名为next的变量
中间件的功能包括:

  • 执行任何代码。
  • 修改请求和响应对象。
  • 终结请求-响应循环
  • 调用堆栈中的下个中间件。
应用级中间件

应用级中间件绑定到app对象app.use()和app.METHOD(),其中METHOD是需要处理的HTTP请求的方法。

路由级中间件

路由级中间件和应用级中间件一样,只是它绑定的对象为exress.Router().

var router = express.Router();
错误处理中间件

错误处理中间件和其他中间件定义类似,只是要使用4个参数,而不是3个,其签名如下:(err,req,res,next).

app.use(function(err,req,res,next){
      console.error(err.stack);
      res.status(500).send('Something broke!');
})
内置中间件 express.static(root,[options])

express.static是express唯一内置的中间件。它基于server-static,负责在Express应用中提托管静态资源
参数root提供静态资源的根目录。
可选的options参数拥有如下属性

  • dotfiles:是否对外输出文件名以点(.)开头的文件。可选值为“allow”、“deny”和“ignore”
  • etag:是否启用etag生成
  • extensions:设置文件扩展名备份选项
  • index:发送目录索引文件,设置为false禁用目录索引。
  • lastModified:设置Last-Modified头为文件在操作系统上的最后修改日趋。可能值为true或false。
  • maxAge:以毫秒或者其字符串格式设置Cache-Control头的max-age属性
  • redirec:当路径为目录时,重定向至"/"。
  • setHeaders:设置HTTP头以提供文件的函数
var options = {
      dotfiles: 'ignore',
      etag:false,
      extensions:['htm','html'],
      index:false,
      maxAge:'id',
      redirect:false,
      setHeaders:function(res,path,stat){
            res.set('x.timestamp',Date.now());
      }
}
app.use(express,static('public',options));

第三方中间件
通过npm 安装第三方中间件

$ npm install cookie-parser

var express = require('express');
var app = express();
var cookieParser = require('cookie-parser');
///加载用于解析cookie的中间件
app.use(cookieParser());

你可能感兴趣的:(Express 中间件)