Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问node.js服务器文件中声明的数组_Javascript_Arrays_Node.js_Socket.io - Fatal编程技术网

Javascript 如何访问node.js服务器文件中声明的数组

Javascript 如何访问node.js服务器文件中声明的数组,javascript,arrays,node.js,socket.io,Javascript,Arrays,Node.js,Socket.io,我在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

我在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
if (typeof global_array !== 'undefined' && global_array.length > 0) {
console.log(global_array);
}  else {
console.log("global array not defined");
}
main.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
if (typeof global_array !== 'undefined' && global_array.length > 0) {
console.log(global_array);
}  else {
console.log("global array not defined");
}

在服务器上定义变量并不意味着它也可以在客户端访问

我建议也在客户端初始化全局_数组变量。当客户端连接到服务器时,服务器将发送初始阵列数据或空阵列(如果没有数据)。然后,客户机将侦听更改事件

服务器端代码:

var全局数组=[];
io.on('连接',函数(套接字){
emit('初始化数组',全局数组);
插座
.on('change',函数(数据){
socket.broadcast.emit('change',data);
全局_array.push(数据);
log(全局_数组);
});

});
无论输出HTML的是什么,只要在脚本标记内输出数组?@adeneo,即index.HTML,当我执行console.log(全局数组)时;它给出ReferenceError:未定义全局数组