У меня проблема со скриптом node.js на работе (кстати, я новичок в узле вообще). Когда я запускаю цикл forEach, кажется, что он может работать асинхронно, и поэтому проблема не возникает. Однако, когда я просматривал документацию по пакету, я ничего не нашел о синхронном выполнении SQL. Заранее спасибо за помощь!
function getLastLoginAndProviderType(jsonObj, connection){
console.log(jsonObj);
jsonObj.forEach(obj => {
console.log("Processing: " + obj["email"]);
//obj["email"], obj["first"], obj["last"], obj["eid"], obj["role"]
var sql = "select LAST_LOGGED_IN_TIME from EINV_OWNER.CONTACT where EMAIL_ADDRESS='" + obj['email'] + "'";
connection.execute(
sql, {}, { maxRows: 15 },
function(err, result) {
if (err) {
console.error("Query Error: " + err.message);
} else {
console.log("Number of rows returned: " + result.rows.length);
obj["lastLoggedIn"] = "null";
obj["supplierOrProvider"] = "null";
}
});
});
Когда скрипт запустится, я ожидаю увидеть что-то вроде:
Processing: [email protected]
Number of rows returned: XX
Processing: [email protected]
Number of rows returned: XX
...
Processing: [email protected]
Number of rows returned: XX
Однако в итоге я получаю:
Processing: [email protected]
Processing: [email protected]
Processing: [email protected]
...
Processing: [email protected]
Query Error: NJS-003: invalid connection
Query Error: NJS-003: invalid connection
Query Error: NJS-003: invalid connection
...
Query Error: NJS-003: invalid connection
Любые идеи? Спасибо!