Итерация по переменной, содержащей данные mysql (с использованием javascript) - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь получить данные из mysql с помощью javascript, а затем выполнить некоторые действия с каждым из результатов.Я сохранил результат mysql в переменной и подумал, что мог бы пройти через это, но я не могу понять, как это сделать.

Чтобы упростить процесс, я упростил приведенный ниже код, который использует forEach ():

connection.query("SELECT length, weight FROM physics WHERE user = 'Test' AND name = 'Hi'", function (err, result) { 
      if (err) throw err;
      allres = result; 

allres.forEach(function(name) {
    console.log(`I looped: ${name}`);
  });
    });     

Результат:

I looped: [object Object]
I looped: [object Object]
I looped: [object Object]

Если я сделаю console.log (allres) Я получаю:

RowDataPacket { length: '5', weight: '3' },
  RowDataPacket { length: '11', weight: '11' },
  RowDataPacket { length: '2', weight: '2' },

Значения есть, но как мне это зациклить?

Ответы [ 2 ]

1 голос
/ 19 сентября 2019

Когда вы объединяете object с string, консоль записывает все как строку.У вас есть несколько вариантов:

Консольный журнал объекта сам по себе

connection.query("SELECT length, weight FROM physics WHERE user = 'Test' AND name = 'Hi'", function(err, result) {
    if (err) throw err;

    console.log('I have ' + result.length + ' results');

    result.forEach(function(entry) {
        console.log('I looped:'); // string
        console.log(entry); // object
    });
});

Консольный журнал каждого элемента каждого объекта

connection.query("SELECT length, weight FROM physics WHERE user = 'Test' AND name = 'Hi'", function(err, result) {
    if (err) throw err;

    console.log('I have ' + result.length + ' results');

    result.forEach(function(entry, index) {
        console.log('for entry with an index of : ' + index);
        console.log('the length value is : ' + entry.length);
        console.log('the weight value is : ' + entry.weight);
    });
});

Используйте модуль util для аккуратной регистрации вложенных объектов

https://www.npmjs.com/package/util

var util = require('util')

connection.query("SELECT length, weight FROM physics WHERE user = 'Test' AND name = 'Hi'", function(err, result) {
    if (err) throw err;

    console.log(util.inspect(result, {showHidden: false, depth: null}));

});
1 голос
/ 19 сентября 2019
for (let i in name) {
    let item = name[i];
    // do something with item
}

Или вы можете получить доступ к значениям напрямую:

let length = name.length;
let weight = data.weight;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...