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