Node.js for的问题(var i = 0

时间:2015-07-20 10:00:15

标签: javascript mysql node.js

我有点问题。我试图通过节点从mySQL获取一些数据,并且当我通过我正在获取的行中进行for循环时,我总是得到1个索引太多或者1索引/行不包含在我的以下代码中。

connection.query("SELECT clientid, profileid FROM ts3bot_in", function(err, rows) {
    if (!err) {
        console.log("Found " + rows.length);
        console.log(rows);

        for (var i = 1; i < (rows.length); i++) {
            console.log(i);
        }
    }
}

所以我的意思是:当我在数据库表中找到1行时,我得到i = 0,并且i = 1.有2行,我得到i = 0,i = 1和i = 2。

希望有人能帮助我。

最诚挚的问候,ndslr。

1 个答案:

答案 0 :(得分:0)

试试这个

connection.query("SELECT clientid, profileid FROM ts3bot_in", function(err, rows) {
    if (!err) {
        console.log("Found " + rows.length);
        console.log(rows);

        for (var i = 0; i < rows.length; i++) {
            console.log(i);
        }
    }
}

请记住,数组是基于零索引的 - 第一项是0.第二项,等等......

rows[0]将始终是数组中的第一项。

你正在做console.log(i),第一项的总是0 如果您希望它为第一个项目显示1,则您需要执行console.log(i+1) - 来克服基于零的索引。

或者,您可以尝试.forEach

connection.query("SELECT clientid, profileid FROM ts3bot_in", function(err, rows) {
    if (!err) {
        console.log("Found " + rows.length);
        console.log(rows);

        rows.forEach(function(row, i) {
            console.log(row); // the actual item
            console.log(i); // the index - again, zero based
        })
    }
}