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

时间:2012-09-25 20:19:31

标签: node.js request express locals

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

app.use((req, res, next) ->
  res.locals.session = req.session
  next()
)

但app.locals也适用于视图吗?如果我app.locals.session = req.session那么它也一样吗? 是否存在app.localsres.locals用于事物类型的约定?

我对res.render()res.redirect()之间的区别感到困惑?应该何时使用?

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

2 个答案:

答案 0 :(得分:10)

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

enter image description here

答案 1 :(得分:7)

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

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

res.render也将呈现页面,以处理请求。 res.redirect会将它们重定向到另一个页面。

例如,如果他们在没有登录的情况下尝试访问/帐户,您可以刷新消息并使用res.redirect('/ login')