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((req, res, next) => {
  res.locals.user = req.user
  next()
})
所有的页面模板中便可以使用 {{user}}.
Req
req.body.{{inputName}}: 处理表单req.params.routeName:/users/:id->req.params.idreq.query:queryString.parse()处理后的查询字符串对象