我正在尝试学习Express,在我的应用程序中,我有中间件将会话对象从Request对象传递给我的Response对象,以便我可以在我的视图中访问它:
app.use((req, res, next) ->
res.locals.session = req.session
next()
)
但app.locals也适用于视图吗?如果我app.locals.session = req.session
那么它也一样吗?
是否存在app.locals
和res.locals
用于事物类型的约定?
我对res.render()
和res.redirect()
之间的区别感到困惑?应该何时使用?
感谢阅读。任何与Express相关的帮助表示赞赏!
答案 0 :(得分:10)
为了进一步说明这一点,我记得查看一个流程图,该流程图显示了如何在模板中找到表达变量的表达式。这来自" Node.js In Action。"我建议阅读讨论Express.js的章节。
答案 1 :(得分:7)
app.locals和res.locals可以在不同的上下文中使用。
res.locals用于处理你有res对象的路径时,你不会有app对象,反之亦然app.locals。
res.render也将呈现页面,以处理请求。 res.redirect会将它们重定向到另一个页面。
例如,如果他们在没有登录的情况下尝试访问/帐户,您可以刷新消息并使用res.redirect('/ login')