узел js серверный пропплем - PullRequest
0 голосов
/ 04 ноября 2019
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);

Я создал очень маленький узел js project. У меня проблема. когда я создаю переменную, как указано выше, она не оценивается отдельно для каждого пользователя. то есть, когда пользователь запрашивает get, я хочу, чтобы он был равен 1 каждый раз. Пример моей проблемы в том, что когда пользователь jack входит на сайт, если он не выходит из системы, кто-то, кто входит на домашнюю страницу сайта с другого устройства, входит в его учетную запись с jack. как я могу это сделать?

1 Ответ

0 голосов
/ 04 ноября 2019

Самый простой ответ на ваш вопрос - просто объявить и увеличить значение переменной внутри функции, переданной в app.get, но я собираюсь предположить, что вам понравилась бы ситуация, когда для серии запросов данного пользователячисло будет увеличиваться.

Самый простой способ сделать это - использовать сеанс на стороне сервера, который предоставляется библиотекой express-session . Кроме того, чтобы это работало, вам нужно вызвать res.end(), чтобы отправить куки, связанные с сеансом сервера, обратно в браузер пользователя. Больше информации о сеансах обычно можно найти здесь .

Ниже приведен код, который повторяет намерения того, что у вас есть, но увеличивается с каждым запросом от уникального экземпляра браузера (идентифицируемого тем жезначение 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...