Перебор базы данных в узле и привязка к массиву

#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