温馨提示:本文翻译自stackoverflow.com,查看原文请点击:node.js - Are Express app.locals shared across requests?
express node.js

node.js - Express app.locals是否在请求之间共享?

发布于 2020-03-28 23:28:06

我有一个疑问:假设用户导航到path /test?token=somelongstring在呈现视图之前,此路径设置了两个app.locals,例如:

app.locals.email: "test-user-email" + user.email;
app.locals.name: "test-user-name" +  + user.name;

user变量是使用令牌查询字符串变量从API中获取的。

比另一个用户使用不同的令牌走到相同的路径,并用他的值设置这两个变量。

现在,假设有另一条路线/display显示了这些变量。用户2设置了以后,用户1会转到该路径app.locals用户1将看到什么?他会看到他的值还是user2值?我想是user2,因为它app.locals是在应用程序而不是实例之间共享的,但是我不确定(并且很遗憾,我现在无法测试自己)

查看更多

查看更多

提问者
Jimi
被浏览
72
Alexis Pavlidis 2020-02-01 00:47

您应该考虑在这里阅读官方文档

基本上app.locals是在整个应用程序中全局访问的属性。因此,基本上每个用户都将看到对这些属性(电子邮件和名称)的最后一次分配。

假设还有另一条路线/ display显示这些变量。用户2设置好app.locals之后,用户1会转到该路径。用户1将看到什么?

他将看到user2信息,因为他/她最后一次将他/她的信息分配给了属性。