10

我正在尝试学习 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 相关的任何帮助!

4

2 回答 2

13

为了进一步说明这一点,我记得查看了一个流程图,该流程图显示了 express 如何呈现模板中的变量。这是来自“ Node.js In Action”。我建议阅读讨论 Express.js 的章节。

在此处输入图像描述

于 2014-06-05T03:21:47.690 回答
9

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

res.locals 用于当您处理具有 res 对象的路由时,您将不会有 app 对象,反之亦然 app.locals。

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

例如,如果他们尝试在不登录的情况下访问 /account,您可以闪烁一条消息并使用 res.redirect('/login')

于 2012-09-26T17:09:35.597 回答