Skip to main content

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() 处理后的查询字符串对象