如何将变量从一个路由器发送到另一个路由器

时间:2018-02-21 17:02:39

标签: node.js express

请使用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;

提前致谢。

1 个答案:

答案 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”。但这适用于您为所有用户设置的内容。