#javascript #node.js
#javascript #node.js
Вопрос:
Попытка перебора базы данных и добавления значений в массив в Node.js . Когда я пытаюсь отправить элементы на основе их имени столбца (‘account name’: res.rows[i].account_name), я получаю ошибку «undefined».
Если я вставляю элемент в строку «accountList.push (res.rows[i])», все данные попадают в объект, но он не помечен.
У меня такое ощущение, что это как-то связано с асинхронной природой узла.
Что я делаю не так?
const query = {
name: "getDB",
text: "select * from smartsneakers",
rowMode:'array',
}
pool.query(query, (err,res) => {
if (err) {
res.status(500).json({"status_code": 500, "status_message": "internal server error"});
} else {
for (let i = 0; i < res.rows.length; i ) {
console.log(res.rows[i].account_name)
//accountList.push(res.rows[i]);
var account = {
'account name':res.rows[i].account_name,
}
accountList.push(account);
}
//console.log(accountList);
console.log(accountList[0]);
}
})
//close connection
pool.end();
Комментарии:
1. Можете ли вы добавить журнал для res перед циклом for
2. Он выводит все данные в консоль, все загружено: поля: [ Field { name: ‘id’, tableId: 16561, columnID: 1, dataTypeID: 23, dataTypeSize: 4, dataTypeModifier: -1, format: ‘text’ }, Поле { name: ‘parent_account’, tableId: 16561, columnID: 2, dataTypeID: 25, dataTypeSize: -1, dataTypeModifier: -1, формат: ‘текст’
3. теперь вы можете видеть, что нет поля с именем account_name
4. имя учетной записи было в следующем ответе, перед ним было 2 столбца, и я поместил в комментарий только частичный ответ
Ответ №1:
Это было потому, что я использовал «rowMode:’array'», поэтому он выводил всю строку.
Вопрос привел меня к ответу — спасибо!
Комментарии:
1. Код доступен здесь: github.com/lowkeysam/psql_to_node