Я работаю с узлами js и postgresql. Я попытался вставить несколько запросов за раз.Асинхронные циклы В Javascript/node.js
ArrayList:
var keywordsData = [ { name: 'demo', count: 69 }, { name: 'healthy', count: '22' }, { name: 'cooking', count: '12' }, { name: 'food', count: '9' }, { name: 'home', count: '9' }, { name: 'organic', count: '7' }, { name: 'live', count: '6' }, { name: 'openmrs', count: '6' }];
Javascript код:
for (var indexs in keywordsData) {
var item = keywordsData[indexs].name;
var count = keywordsData[indexs].count;
var goalId = 10;
console.log("first" + indexs);
if (item.length > 1) {
client.query("insert into real_keywords(reference_id,keyword,keyword_count) values('" + goalId + "','" + item + "','" + count + "')", function(err, result) {
console.log("last" + indexs);
});
}
}
выход я получаю так:
first0
first1
first2
first3
first4
first5
first6
first7
last7
last7
last7
last7
last7
last7
last7
last7
Ожидаемый результат:
first0
last0
first1
last1
first2
last2
first3
last3
first4
last4
first5
last5
first6
last6
first7
last7
Пожалуйста, любой может предложить лучший способ решить эту проблему.
Хорошо, это немного не соответствует теме, поэтому не добавляйте его в качестве ответа. Ответ @IyadAssaf правильный в отношении async. Но вы должны проверить два других бита для своих SQL-запросов 1) Не знаете, что такое размер 'indexes', но вы можете вставлять сразу все свои строки. http://stackoverflow.com/questions/6889065/inserting-multiple-rows-in-mysql 2) Вы должны рассмотреть возможность использования подготовленного оператора вместо конкатенации строк. http://www.postgresql.org/docs/9.2/static/sql-prepare.html –