除了req
只是一个存储在内存中的 javascript 对象变量之外,请注意 express 有一个res.locals
在请求/响应周期中持续存在的对象变量。
如果要存储任何用户信息,则应使用该res.locals
对象,以免意外覆盖其他重要对象。
res.locals
一个对象,其中包含范围为请求的响应局部变量,因此仅可用于在该请求/响应周期(如果有)期间呈现的视图。否则,此属性与 app.locals 相同。此属性对于公开请求级信息(例如请求路径名、经过身份验证的用户、用户设置等)很有用。
http://expressjs.com/en/5x/api.html#res.locals
app.use(function (req, res, next) {
res.locals.user = req.user
res.locals.authenticated = !req.user.anonymous
next()
})
注意:res.locals
它本身不会与响应一起发送(例如res.send
)。它只能在您的 nodejs 应用程序中访问。
饼干
Cookie 是您想要发送到客户端浏览器的信息位(存储在浏览器内存中)。然后,客户端可以将 cookie 发送回您的 nodejs 应用程序。这些req
和res
属性不同。
Cookie 可以存储例如身份验证令牌,该令牌可以存储在客户端的浏览器中,并在每次请求时提供给 nodejs 应用程序。
为了安全起见,您可以使用浏览器 javascript 无法修改的 httpOnly cookie。