ExpressJS:app.local和res.local有什么不同?

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

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

但是app.locals可用于视图,对吗? 那么,如果我做app.locals.session = req.session它是一样的吗? 是否有一个约定的事物types的app.localsres.locals用于?

我也困惑res.render()res.redirect()之间的区别是什么? 什么时候应该使用?

谢谢阅读。 任何与快递有关的帮助表示赞赏!

app.locals和res.locals可以在不同的环境下使用。

res.locals适用于处理拥有res对象的路由时,app.locals中不会有应用程序对象,反之亦然。

res.render也会渲染页面来处理请求。 res.redirect会将它们redirect到不同的页面。

例如,如果他们尝试访问/帐户没有login,你可以刷新一条消息,并使用res.redirect('/login')

为了进一步说明这一点,我记得查看了一个stream程图,显示了如何在模板中findexpression式variables。 这是来自“ Node.js In Action” 。 我build议阅读讨论Express.js的章节。

在这里输入图像描述

Interesting Posts