我在Node.js应用程序的server.js中声明了一个数组。我希望客户端能够访问阵列及其内容。那可能吗?如果是的话,我该怎么做?我尝试了以下内容,但控制台总是说全局数组未定义
server.js
//connection code above this
var global_array=[];
socket.on('change', function(data){
socket.broadcast.emit('change', data);
global_array.push(data);
console.log(global_array);
});
.... //rest code
main.js
if (typeof global_array !== 'undefined' && global_array.length > 0) {
console.log(global_array);
} else {
console.log("global array not defined");
}
答案 0 :(得分:2)
在服务器上定义变量并不意味着它也可以在客户端访问。
我建议在客户端初始化 global_array 变量。当客户端连接到服务器时,服务器将发送初始数组数据或空数组(如果没有数据)。然后,客户端将收听更改事件。
服务器端代码:
var global_array = [];
io.on('connection', function(socket) {
socket.emit('initialize array', global_array);
socket
.on('change', function(data) {
socket.broadcast.emit('change', data);
global_array.push(data);
console.log(global_array);
});
});
客户端代码:
var global_array;
socket
.on('initialize array', function(initial_global_array) {
global_array = initial_global_array;
})
.on('change', function(data) {
global_array.push(data);
});