将数据存储在特定于节点Express JS中的请求的变量中

时间:2018-10-29 05:24:13

标签: node.js express var

我想将数据存储在变量中,但它应特定于用户。

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

现在,我从不同的浏览器访问此链接以获取不同的帐户代码,我可以看到storedata变量是全局变量,可以对其进行维护,而不必像为不同用户维护一样。 如何声明变量,以便不被替换,并且仅保留给用户。为了解决问题,我在app.get上生成了一个唯一的ID,并将其传递给客户端,并在请求时将其传递给服务器,以便该变量使用不同的ID进行维护,因此对于所有用户而言,它都是唯一的。

storedata[uniqid]=req.params.accountcode

并仅使用此uniqid进行访问。它可以工作,但是在所有请求下我都可以看到所有id数据,如果只能以不同的方式进行维护,那就太好了。

0 个答案:

没有答案