无法在NodeJS MySQL中使用全局变量

时间:2014-12-02 00:17:18

标签: javascript node.js

我无法访问MySQL查询回调中的forth_matches数组,怎么回事?

我在console.log上遇到'TypeError:无法读取属性'1'的'null'错误消息(coming_matches [1]);表示由于某种原因重置变量的行(猜测,我对Javascript不是很熟悉)?

var regex = regex code..

while ((upcoming_matches = regex.exec(body)) != null) {
    HLTVID = upcoming_matches[1].split("-");    

    connection.query('SELECT * FROM `csgo_matches` WHERE HLTVID=' + HLTVID[0], function(err, rows, fields) {
        if (err) throw err;
        console.log(upcoming_matches[1]);
    });
}

1 个答案:

答案 0 :(得分:3)

因为目前执行了传递给connection.query的回调,while循环已经完成且upcoming_matchesnull(因为这是{{1}的条件循环停止)。

while 异步

请参阅Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference