node.js将数组传递给mysqlcallback

是否有可能传递数组到mysqlcallback,如:

connection.query('SELECT count(id) as wynik FROM used where asset_id = \''+asid+'\'', inventory[i],function(err,wiersze){ console.log(inventory[i]); }); 

现在inventory[i]不可用,但我需要。

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

立即调用的匿名function

 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); }); 

.forEach()

 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++; } }); } }); 

在你的string后面直接传callback()你的callback()

尝试这个 :

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