@Sun2790

Как правильно вывести значения из бд Mysql node js?

Пытаюсь сделать пока что на Mysql. Вывести значения из бд. Передать в переменные и далее с ними работать. Подскажите как это правильно реализовать. В идеале async await
let mysql = require('mysql');
let con = mysql.createConnection({
   host: "127.0.0.1",
   user: "root",
   password: "",
   database: "mania"
});

let qry =`SELECT * FROM price_history_1d;`;
con.connect(function (err) {
   if (err) throw err;
   console.log("Connected!");
   con.query(qry, function (err, results) {
      if (err) throw err;
      results.forEach((row) => {
         console.log(`ID: ${row['birza']}, NAME: ${row['symbol']}, AGE: ${row['price']}`);
/// получаю вот такой результат
//ID: 570, NAME: someone, AGE: 0.4567
//ID: 571, NAME: someone2, AGE: 0.777
//ID: 571, NAME: dd, AGE: 0.4890
//ID: 571, NAME: dd, AGE: 5.111
// а нужно так как показано ниже.
// Каждое значение из таблицы получает свою переменную для дальнейшей работы

      });
   });
   con.end();
});

// вывести данные за пределы функции. И далее с ними работать
let id some1=570; let name1 =someone; let sumAGEres1=0.4567;
let id some2=570; let name2 =someone2; let sumAGEres2=0.777;
let id some3=570; let name3 =dd; let sumAGEres3=0.4890;
let id some4=570; let name4 =dd; let sumAGEres4=5.111;
  • Вопрос задан
  • 273 просмотра
Пригласить эксперта
Ответы на вопрос 1
Azamat_Lee
@Azamat_Lee
Работаю с Wordpress
Для работы с MySQL в Node.js и использования async/await для асинхронных операций, вы можете использовать библиотеку mysql2/promise, которая поддерживает промисы и позволяет использовать async/await. Вот пример того, как можно реализовать ваш запрос:

const mysql = require('mysql2/promise');

async function getData() {
  const connection = await mysql.createConnection({
    host: "127.0.0.1",
    user: "root",
    password: "",
    database: "mania"
  });

  try {
    const [rows, fields] = await connection.execute('SELECT * FROM price_history_1d');
    for (let row of rows) {
      console.log(`ID: ${row['birza']}, NAME: ${row['symbol']}, PRICE: ${row['price']}`);
      // Теперь вы можете работать с каждой строкой данных как с объектом
      // Например, вы можете сохранить данные в переменные или отправить их куда-либо
    }
  } catch (err) {
    console.error(err);
  } finally {
    await connection.end();
  }
}

getData();


Этот код создает асинхронную функцию getData, которая устанавливает соединение с базой данных, выполняет запрос и выводит результаты. Каждая строка результатов обрабатывается в цикле, и вы можете сохранять данные в переменные или использовать их для других операций внутри цикла.

Обратите внимание, что для использования mysql2/promise вам нужно будет установить этот пакет через npm:

npm install mysql2

Использование async/await позволяет писать асинхронный код, который выглядит как синхронный, и делает его более читаемым и удобным для отладки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы