0
我想在檢查數據庫表中是否已經存在數據之前插入數據?如果存在,則循環繼續執行控制檯消息「已存在」,如果不存在,則嘗試插入表中。但是一些記錄已經在數據庫表中,然後也插入到表中。選擇並插入節點循環不按預期方式工作
關注我的代碼的NodeJS
(function loop(index){
if(index==apires.items.length){
console.log("Cron completed");
res.send("Cron completed");
return false;
}
inventoryObj = apires.items[index];
hash_name = inventoryObj.market_hash_name;
db.query('SELECT market_hash_name FROM inventory_master WHERE market_hash_name = "'+hash_name+'"', function(err,result, fields){
if(result.length){
console.log('already exist');
loop(++index);
}
else
{
var post = {data_here};
var query = db.query('INSERT INTO inventory_master SET ?', post, function (error, results, fields) {
if (error) throw error;
loop(++index);
});
}
});
})(0);
感謝您的回覆。我會嘗試。你能告訴我我的代碼在哪裏嗎?只是爲了我的信息,我在問。 – Sadikhasan
每當在節點js中發生輸入輸出操作時,線程就不會等待I/O操作完成,並且它將轉至您的循環的下一次迭代。所以沒有清晰的代碼執行順序。這種異步方法將確保您的所有記錄都以相同的順序處理。 –
我按照nodejs規則和語法使用回調函數。你能指出我的代碼實際上錯了嗎? – Sadikhasan