必备中间件的使用

下面介绍常用中间件的使用方法:

用于解析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 找到。

有中间件使用问题可在线提问。