Node.js NodeJS-存储全局变量

Node.js NodeJS-存储全局变量,node.js,socket.io,Node.js,Socket.io,我目前正在尝试获取所有已登录成员的列表。我使用socket.js来实现这一点,并使用事件处理程序 我有以下事件: eventEmitter.on('userSignedIn', function(socket, user) { socket.emit("userJoined", {currentUsers: user.first_name}); }); 然后,在JQuery中,我将执行以下操作: socket.on('userJoined', function (message) {

我目前正在尝试获取所有已登录成员的列表。我使用socket.js来实现这一点,并使用事件处理程序

我有以下事件:

eventEmitter.on('userSignedIn', function(socket, user) { 
   socket.emit("userJoined", {currentUsers: user.first_name});
});
然后,在JQuery中,我将执行以下操作:

socket.on('userJoined', function (message) {
              newItem = $("<li>Item " + message.currentUsers + "</li>").show();
              $('.users-list').prepend(newItem);
          });
socket.on('userJoined',函数(消息){
newItem=$(“
  • Item”+message.currentUsers+“
  • ”).show(); $('.users list').prepend(newItem); });
    但是,这不起作用,甚至没有显示正确的用户名


    基本上,我想做的是,当事件
    userSignedIn
    添加一个数组
    users
    和刚刚签名的用户,然后通过套接字发送。但我很难看到如何将其存储在全局应用程序中?

    节点中的全局变量可以通过访问

    如果需要将其作为全局变量存储在节点中,请转到模块,安装它(使用起来非常简单),并使用它存储计数器的原始全局变量。在.env文件中,您应该说
    counter=1
    。然后,您可以通过在代码中通过声明process.env.counter访问全局变量来增加它,也可以增加它

    请记住:如果进程停止运行或停止运行,当您将其恢复时,计数器将返回到原始状态1

    如果不想使用该模块,您可以直接在代码中创建并访问process.env变量。但是,它非常灵活,您可能希望将其用于其他目的


    希望这对您有所帮助

    您所说的全球范围是什么?您的服务器中的还是浏览器中的?@slebetman它将位于服务器上,因为它需要记录当前登录的用户数。基本上,一个对象每次用户登录时都会递增。@twig-谢谢,但这是最有效的方法吗?@Phorce还有另一种方法,就是在服务器上创建一个简单的缓存,比如,使用,然后将计数器放在其中。它使用起来非常简单,保存此类信息也非常有效。(它毕竟是一个缓存:)