节点js服务器属性

时间:2019-11-04 13:18:35

标签: node.js express sockets server

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。 样品  我的问题是,当千斤顶用户进入站点时,如果他没有注销,则从另一台设备进入站点首页的人将使用千斤顶输入其帐户。 我该怎么办?

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);