Javascript node.js将数组传递到mysql回调

Javascript node.js将数组传递到mysql回调,javascript,mysql,node.js,Javascript,Mysql,Node.js,是否可以将数组传递到mysql回调中,如: connection.query('SELECT count(id) as wynik FROM used where asset_id = \''+asid+'\'', inventory[i],function(err,wiersze){ console.log(inventory[i]); }); 现在,inventory[i]在内部不可用,但我需要它。直接在字符串后面传递您的callback() 试试这个: connection

是否可以将数组传递到mysql回调中,如:

connection.query('SELECT count(id) as wynik FROM used where asset_id = 
  \''+asid+'\'', inventory[i],function(err,wiersze){
    console.log(inventory[i]);
});
现在,
inventory[i]
在内部不可用,但我需要它。

直接在字符串后面传递您的
callback()

试试这个:

connection.query("SELECT count(id) as wynik FROM used where asset_id = " + asid, function(err, rows){
     /* check errors here */
     console.log(rows);
 });

由于您在for循环中,因此需要使用立即调用的匿名函数或简单的
.forEach()
。以下两个示例都提供了

立即调用匿名函数

for (var i = 0; i < inventory.length; i++) {
    (function(i) {
        if (inventory[i].market_hash_name == rows[j].real_name) {
            var asid = inventory[i].assetid;
            connection.query('SELECT count(id) as wynik FROM used where asset_id = \'' + asid + '\'', function(err, wiersze) {
                console.log(inventory[i]);
                process.exit(1);
                if (wiersze[0].wynik == 0) {
                    var employee = {
                        asset_id: asid,
                        trans_id: rows[j].tid
                    };
                    connection.query('INSERT INTO used SET ?', employee, function(err, res) {
                        if (err) throw err;
                        offer.addMyItem(inventory[i]);
                    });
                    licznik++;
                }

            });

        }
    })(i);
});

库存[i]应该是什么?您使用的是哪个mysql模块?现在来看,我猜您需要
connection.query('SELECT count(id)as wynik FROM used where asset\u id=\''+asid+'\'',function(err,wiersze){console.log(wiersze[0].wynik);})如果我这样做,则查询块中的库存不可用。返回未定义。能否提供更大的代码示例?你的代码还有其他一些问题。啊,你在for循环中。这就是我所想的,但不用担心。我用两种不同的解决方案编辑了我的答案。非常感谢。但我还有一个问题。李茨尼克怎么样?我试过这样的东西,但不起作用。
inventory.forEach(function(item) {
    if (item.market_hash_name == rows[j].real_name) {
        var asid = item.assetid;
        connection.query('SELECT count(id) as wynik FROM used where asset_id = \'' + asid + '\'', function(err, wiersze) {
            console.log(item);
            process.exit(1);
            if (wiersze[0].wynik == 0) {
                var employee = {
                    asset_id: asid,
                    trans_id: rows[j].tid
                };
                connection.query('INSERT INTO used SET ?', employee, function(err, res) {
                    if (err) throw err;
                    offer.addMyItem(item);
                });
                licznik++;
            }

        });

    }
});