node.js的一个奇怪功能

A strange feature of node.js

本文关键字:一个 功能 js node      更新时间:2023-09-26

注意到node.js的一个奇怪特性。

例如:

比方说,我在node.js服务器上有一些变量:var user_id = '1';,其中存储了连接到服务器的用户id。

user1具有var user = 1;

user2具有var user = 2;

user99具有var user = 99;

但是,如果在某个时刻我将从服务器变量user中请求,我将返回重写她的最后一个用户的id。

是这样吗?那应该是吗?我想,node.js为每个用户创建一个flow/process。。。

谢谢你的回答

index.js

dNode({
    connect: function(data, callback) {
        IM.iUserId = data.user_id;
        IM.start();
    }
});

im.js

var IM = {
    iUserId: false,
    start: function() {
        console.log(this.iUserId);
    }
};

您似乎有一个全局IM对象,所有连接都在共享这些对象。


您可以使用socket.setsocket.get 设置/获取每个套接字的值

Node.js是单线程的一个上下文,它不像在PHP中那样为用户创建任何独立的上下文。

里面的一切都是共享的,可以交叉访问。