请使用node.js将一个变量从login.js发送到dashbaord.js。
这是我的dashboard.js:
var express = require('express');
var router = express.Router();
var Firebase = require('firebase');
var login = require('./login');
var user = login.userId;
var admin = require("firebase-admin");
var login = require('./login');
/* GET home page. */
router.get('/', function(req, res, next) {
console.log(user) // this return an undefine
res.render("pages/dashboard");
});
module.exports = router;
提前致谢。
答案 0 :(得分:0)
路由中的代码仅在命中URL模式时运行。因此,在下面的代码中,每次“/”被点击时都会打印出用户中的值,但您只会初始化用户一次。
router.get('/', function(req, res, next) {
console.log(user) // this return an undefine
res.render("pages/dashboard");
});
var user = login.userId;
的行仅在启动主快递应用时设置一次。这就是为什么它会以未定义的方式回归。但是你不应该以这种方式将用户信息从模块传递给模块,这就是会话的目的。
会话&用户ID 强>
如果你想获得userId,你应该将它存储在用户会话或cookie中,然后你可以将它从请求对象中拉出来。您可以使用会话中的userId从数据库中检索的特定于用户的任何数据。快递没有内置的会话支持,但你可以安装中间件,为你处理这个问题,然后你可以写。
router.get('/', function(req, res, next) {
console.log(req.session.userId)
res.render("pages/dashboard");
});
环境变量
如果您需要跨多个模块传递配置设置,可以使用
process.env.${propertyName}
例如process.env.cat =“Henry”。但这适用于您为所有用户设置的内容。