const express = require("express");
const app = express();
var i = new Number;
i=0;
app.get("/", function(req, res){
i++
console.log(i);
});
app.listen(8080);
我创建了一个非常小的node js项目。我有个问题。当我创建上述变量时,它不会分别为每个用户求值。也就是说,当用户请求获取时,我希望每次都为1。 样品 我的问题是,当千斤顶用户进入站点时,如果他没有注销,则从另一台设备进入站点首页的人将使用千斤顶输入其帐户。 我该怎么办?
答案 0 :(得分:0)
您问题的最简单答案是简单声明并递增传递给app.get
的函数中的变量,但我将假设您希望针对给定用户的一系列请求进行处理,数字将递增。
最简单的方法是使用服务器端会话,该会话由express-session库提供。此外,为了使其正常工作,您需要调用res.end()
,以便将与服务器会话关联的cookie发送回用户的浏览器。通常可以在here上找到有关会话的更多信息。
以下是用于复制您所拥有内容的代码,但是针对来自唯一浏览器实例的每个请求(由与服务器会话相关联的相同cookie值标识)进行递增:
const express = require('express');
const session = require('express-session');
const app = express();
app.use(session({
resave: false,
saveUninitialized: true,
secret: 'secret',
cookie: {
maxAge: 60000
}
}));
app.get('/', function(req, res){
if (!req.session.value) {
req.session.value = 0;
}
req.session.value++;
console.log(req.session.value);
res.end();
});
app.listen(8080);