我想将数据存储在变量中,但它应特定于用户。
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数据,如果只能以不同的方式进行维护,那就太好了。