[英]node.js pass array to mysql callback
是否有可能將數組傳遞到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);
});
.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++;
}
});
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.