gpt4 book ai didi

arrays - NodeJS module.exports,保留数组内容

转载 作者:太空宇宙 更新时间:2023-11-04 02:28:15 25 4
gpt4 key购买 nike

我只需要知道如何保留数组内容。我做了这个,但当新用户连接时数组是空的。

module.exports = function(){
var clients = [];
function push_clients(a) {
clients.push(a);
}
global.socket.of('/fsdd6SDF86QS').on('connection', function(socket) {
socket.on('user-ready', function(data) {
console.log('init clients: '+clients);
push_clients(socket.id);
console.log('final clients: '+clients);
});
}
}();

在我尝试之前:clients.push(socket.id);但结果相同。有什么想法吗?

最佳答案

在您的情况下,clients 变量是本地变量,无法将其导出到外部。更好的决定是仅导出一个函数,然后创建一个实例+使客户端变量成为对象属性:

module.exports = function(){
this.clients= [];
this.push_clients = function (a) {
this.clients.push(a);
}
self = this;
/* .. */
console.log('init clients: '+clients);
self.push_clients(socket.id); // or just self.clients.push(socket.id);
}

在另一个模块中调用它,如下所示:

var Sockets = require("your_module_path");
var sockets = new Sockets();
sockets.clients // here will collect connected users

关于arrays - NodeJS module.exports,保留数组内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28987712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com