Хранить данные в переменной, специфичной для запроса, в выражении узла - PullRequest
0 голосов
/ 29 октября 2018

Я хочу хранить данные в переменной, но они должны быть специфичными для пользователя.

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

var storedata='';

app.get('/:accountcode', function(req, res){
  res.sendFile(__dirname + '/index.html');
  storedata=req.params.accountcode;
});

io.on('connection', function(socket){
  socket.on('initialize', function(msg){
    console.log(storedata); //Here all users data can be seen.
  });
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});

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

storedata[uniqid]=req.params.accountcode

и получить к нему доступ только с помощью uniqid. Это работает, но по всем запросам я могу видеть все данные идентификатора, было бы здорово, если бы они могли поддерживаться только по-другому.

...