Javascript Socket.io未使用Node.js从函数中提取

Javascript Socket.io未使用Node.js从函数中提取,javascript,node.js,sockets,Javascript,Node.js,Sockets,我在Node.js、socket等方面遇到了问题。这可能是一个整体javascript问题,但我遇到了问题 我不知道如何从函数中提取数据并将其设置为全局变量 它被困在下面的函数中,我无法影响DOM(或html文档,以保持语言简单)。我是Node和socket.io的新手,已经用Javascript工作了大约一个月了,慢慢地开始思考,但这似乎是一个我无法回答的简单问题。从函数中提取var并使其全局化,应该很简单吗 var markets; // if I remove this I get Unc

我在Node.js、socket等方面遇到了问题。这可能是一个整体javascript问题,但我遇到了问题

我不知道如何从函数中提取数据并将其设置为全局变量

它被困在下面的函数中,我无法影响DOM(或html文档,以保持语言简单)。我是Node和socket.io的新手,已经用Javascript工作了大约一个月了,慢慢地开始思考,但这似乎是一个我无法回答的简单问题。从函数中提取var并使其全局化,应该很简单吗

var markets; // if I remove this I get Uncaught ReferenceError: markets is not defined and everything else breaks
console.log(markets); //this is undefined in the console, this is where the problem arises, how do i get the data from out of the below function?
var socket = io.connect('http://localhost'); 
socket.on('ready', function (data) {
    console.log(data); // correctly outputs all data from server
    for (var i = 0; i < data.length; i++) {;
        item = data[i]; // just pulling one array from the database... i think?
        createBox(item); //not really sure what this does
    };
    console.log(item); // this outputs one Object
    markets = item; //this is defining item as being markets
});

function createBox(item) {
    var box = document.createElement('div');
    var itemName = document.createTextNode(item.name);
    document.body.appendChild(itemName);
    console.log(item.name);
};
var市场;//如果我删除这个,我会得到未捕获的引用错误:市场没有定义,其他一切都会中断
控制台.日志(市场)//这在控制台中是未定义的,这就是问题所在,如何从下面的函数中获取数据?
var socket=io.connect('http://localhost'); 
socket.on('ready',函数(数据){
console.log(data);//正确地从服务器输出所有数据
对于(var i=0;i
请改进此静音。按照现在设置代码的方式,您希望让“市场”保留“数据”数组中的最后一项。也许你想让市场成为一个阵列?如var市场=[];然后在socket.on('ready')回调函数中,将项目推送到markets数组中?此外,您可能希望为您的内容命名名称空间,而不是使所有内容都是全局的。为了让我对js了如指掌,观看道格拉斯·克罗克福德(Douglas Crockford)的视频《Javascript,好的部分》(Javascript,the good parts)真的帮了我大忙——其中的六个视频让我逐渐获得了越来越多的东西,并从中开始工作//这将项目定义为市场否,它将
市场
设置为
项目
的值。不清楚你在问什么。什么使您认为您没有设置全局变量?根据发布的代码,您肯定是在将全局变量
markets
设置为循环生成的最后一个
项目的值。上面的代码是在您的网页中还是在浏览器中运行,还是您试图在node.js进程中运行的代码?不,甚至不要尝试“使其成为全局的”。看见你的插座也有同样的问题。