设置全局/本地变量

时间:2016-11-15 19:06:48

标签: node.js express

我刚刚开始使用Node,而且我遇到了设置变量的问题。在下面的示例中,显示随机值对于每个用户都是相同的,因为它是在应用开始时设置的。

var random = math.Random();

app.post('/api/whatever/', function(req, res) {
     console.log(random);
});

使用局部变量意味着每次发布请求时随机值都会发生变化:

app.post('/api/whatever/', function(req, res) {
    var random = math.Random();
    console.log(random);
});

我想弄清楚的是如何为每个用户/会话设置一次随机值(即用户第一次调用/ api / what)。我在第一个请求之后设置了其他配置变量,因此最好只触发init()函数。但问题是一样的。

2 个答案:

答案 0 :(得分:0)

您的全局变量可以包含一个对象,其键是会话ID,值是您想要的特定于会话的信息 - 例如您的随机数。

要获取会话ID,请参阅此问题:How can I find the session Id when using express / connect and a session store?

答案 1 :(得分:0)

使用express-session模块:

npm install express-session

以下是一个例子:

...

var session = require('express-session');

app.use(session({secret: '1234567890QWERTY'}));

app.get('/api/whatever/', function(req, res) {

  if(req.session.random) {
    res.send('Your random key is: ' + req.session.random);

  } else {
    req.session.random = Math.random();
    // Set anything else you want in req.session ...
  }

});