Express 4.8.x—必备中间件的使用
必备中间件的使用
下面介绍常用中间件的使用方法:
cookie-parser
用于解析cookie的中间件,添加中间后,req具备cookies属性。通过req.cookies.xxx
可以访问cookie的值。
安装:
$ npm install cookie-parser
使用
var cookieParser = require('cookie-parser') app.use(cookieParser(secret, options))
secret
是可选参数,用于对cookie进行签名
,通过它可以判断出客户是否修改了cookie,这是处于安全考虑,这个参数是任意字符串。
options
可选参数,是一个json对象。
path
expires
maxAge
domain
secure
httpOnly
这几个选项中,expires 过期日期设置方式是: new Date(Date.now() + 90000); 也就是说它接收一个Date日期对象,而不是数字,因为中间件内部是这样做的, expires.toUTCString() 。
express-session
var express = require('express') var session = require('express-session') var app = express() app.use(session({secret: 'keyboard cat'}))
session(options )中间件的 options 常用选项如下:
name - 默认'connect.sid',可自定义。
store - session 储存器实例。
secret - 用于对cookie进行签名
,通过它可以判断出客户是否修改了cookie,这是处于安全考虑,这个参数是任意字符串。
cookie - 对session cookie的设置 。默认值 { path: '/', httpOnly: true, secure: false, maxAge: null }
genid - 是个函数,调用它来生成一个新的会话ID。 (默认:使用UID2库)
rolling - 强制对每个响应的Cookie,重置到期日期。 (默认:false)
resave - 每一次都重新保存,即使没修改过(默认:true)
proxy - ture/false,是否支持trust proxy
, 需要设置 app.enable('trust proxy');
一般来说,无需设置。
serve-favicon
通过下面代码可以设置网站的 favicon图标。
app.use(favicon(__dirname + '/public/favicon.ico'));
body-parser
var bodyParser = require('body-parser'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded());
通过以上的设置,即可让post请求接收到的表单信息保存在 req.body
当中。
其他中间件可在 https://github.com/senchalabs/connect#middleware 找到。
有中间件使用问题可在线提问。