Node.js 节点js服务器程序
我创建了一个非常小的NodeJS项目。我有个问题。当我创建如上所述的变量时,它不会对每个用户分别求值。也就是说,当用户请求get时,我希望它每次都是1。 样品Node.js 节点js服务器程序,node.js,express,sockets,server,Node.js,Express,Sockets,Server,我创建了一个非常小的NodeJS项目。我有个问题。当我创建如上所述的变量时,它不会对每个用户分别求值。也就是说,当用户请求get时,我希望它每次都是1。 样品 我的问题是,当一个jack用户进入一个站点时,如果他没有注销,从另一台设备进入该站点主页的人就会进入他与jack的帐户。 我该怎么做呢?对于您的问题,最简单的答案是简单地声明并增加传递给app.get的函数中的变量,但我假设您希望出现这样一种情况,即对于给定用户的一系列请求,数字将增加 最简单的方法是使用库提供的服务器端会话。此外,为了使
我的问题是,当一个jack用户进入一个站点时,如果他没有注销,从另一台设备进入该站点主页的人就会进入他与jack的帐户。
我该怎么做呢?对于您的问题,最简单的答案是简单地声明并增加传递给
app.get
的函数中的变量,但我假设您希望出现这样一种情况,即对于给定用户的一系列请求,数字将增加
最简单的方法是使用库提供的服务器端会话。此外,为了使其工作,您需要调用res.end()
,以便将与服务器会话关联的cookie发送回用户的浏览器。有关会话的更多信息,请参阅
下面的代码用于复制您在那里的目的,但对于来自唯一浏览器实例(由与服务器会话关联的相同cookie值标识)的每个请求都会递增:
你想在个人用户级别增加i值吗?不是每次调用get方法都要增加i值吗?@ASP yesıwant我希望这会对你有所帮助。我的问题是,当jack用户进入一个站点时,如果他没有注销,从另一个设备进入该站点主页的人就会进入他与jack的帐户。@YusufCıbıl一般来说,这听起来像是在请求之外泄漏状态(例如,
i
变量在请求处理程序之外)。使用如我所示的会话可以稍微涵盖这一点,因为它获取与浏览器关联的会话并从中提取值,而不是操纵全局变量。
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);
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);