我正在使用带有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'时执行。
处理此问题的最佳方法是什么?
答案 0 :(得分:1)
这是我为解决问题所做的工作。我使用了会话和变量
KK.DF <- as.data.frame(KK14stl$time.series)
我在ejs文件和其他Node模块文件上直接使用userHeader变量我首先从响应cookie获取userHeader变量然后再使用它。