Node Express的全局变量

时间:2018-01-03 13:49:08

标签: node.js express global-variables ejs

我正在使用带有EJS的Node Express。我有一个Login模块,它可以完成所有与用户会话相关的工作(比如登录生成令牌,验证令牌)。所以在app.js发送请求到特定模块之前我调用login-> controller-> verifyToken

// app.js
const user = require('./controllers/login');
app.use('/dashboard', user.verifyToken,  dashboard);
app.use('/network', user.verifyToken, network);

user.verifyToken - 从请求标头验证令牌,并向我提供用户详细信息,如姓名,个人资料图片等。我想将这些用户详细信息存储在全局变量中,以便我可以在所有页面中访问它。所以我这样做了。

userHeader = authData.user; // without var, let

但是有了这个,我可以在视图文件(.ejs)中访问变量。但我无法在其他模块.JS文件中访问此变量。我认为这背后的原因是所有视图文件都在之后执行,而.js文件在'require'时执行。

处理此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

这是我为解决问题所做的工作。我使用了会话和变量

KK.DF <- as.data.frame(KK14stl$time.series)

我在ejs文件和其他Node模块文件上直接使用userHeader变量我首先从响应cookie获取userHeader变量然后再使用它。