ExpressJS:app.local和res.local有什么区别?

aey*_*ang 9 request locals node.js express

我正在尝试学习Express,在我的应用程序中,我有中间件将会话对象从Request对象传递给我的Response对象,以便我可以在我的视图中访问它:

app.use((req, res, next) ->
  res.locals.session = req.session
  next()
)
Run Code Online (Sandbox Code Playgroud)

但app.locals也适用于视图吗?如果我这样做也一样app.locals.session = req.session吗?对于各种类型的东西是否有约定app.localsres.locals用于?

我也搞不清楚的区别是什么之间res.render()res.redirect()?什么时候应该使用?

谢谢阅读.任何与Express相关的帮助表示赞赏!

Mic*_*ael 10

为了进一步说明这一点,我记得查看一个流程图,该流程图显示了如何表达在模板中找到变量.这来自" Node.js In Action".我建议阅读讨论Express.js的章节.

在此输入图像描述


cho*_*ovy 8

app.locals和res.locals可以在不同的上下文中使用.

res.locals用于处理您拥有res对象的路径时,您将不会有app对象,反之亦然app.locals.

res.render也将呈现页面,以处理请求.res.redirect会将它们重定向到不同的页面.

例如,如果他们尝试访问/帐户而不登录,您可以刷新消息并使用res.redirect('/ login')