我刚刚开始使用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()函数。但问题是一样的。
答案 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 ...
}
});