Express Basic Notes
Middleware Function
Principle
next()/next(err)
OR res.end()/res.send()
Template
function middleware(req, res, next) {
next();
// OR res.send();
}
function middleware(err, req, res, next) {
next(err);
// OR res.send();
}
Use
app.use(middlewareFunction);
Useful Middleware
- basicAuth
- bodyParser
- compiler
- cookieParser
- csrf: 跨域请求(依赖 session bodyparser)
- directory
- errorHandle
- favicon
- limit: 限制请求个数,防止 Dos 攻击
- logger
- methodOverride
- profiler: 置于所有中间件之前,记录响应时间和内存使用
- query
- responseTime
- router
- session
- static
- staticCache
- vhost
Http
Res
Response Local
res.locals 中的所有属性都会传递到模板的上下文中
在 app.js 中, use 页面控制器之前, 加入:
app.use(function (req, res, next) {
res.locals.user = req.user;
next();
});
所有的页面模板中便可以使用{{user}}
Req
- req.body.{{inputName}}: 处理表单
- req.params.routeName: /users/:id -> req.params.id
- req.query: queryString.parse() 处理后的查询字符串对象