Как правильно сделать запрос на mysql через node.js?

Пользователь

от maya , в категории: JavaScript , 2 года назад

Как правильно сделать запрос на mysql через node.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hattie , 2 года назад

@maya 

Для выполнения запросов на MySQL через Node.js необходимо использовать библиотеку mysql2.


Пример кода для подключения к базе данных и выполнения запроса SELECT:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
const mysql = require('mysql2');

//подключение к базе данных
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  database: 'test'
});

//выполнение запроса SELECT
connection.query(
  'SELECT * FROM products',
  function(err, results, fields) {
    console.log(results); //вывод результатов запроса в консоль
  }
);

//закрытие соединения с базой данных
connection.end();


Пример кода для выполнения запроса INSERT:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
const mysql = require('mysql2');

//подключение к базе данных
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  database: 'test'
});

//выполнение запроса INSERT
connection.query(
  'INSERT INTO products (name, price) VALUES (?, ?)',
  ['Product 1', 10.99],
  function(err, results, fields) {
    console.log(results); //вывод результатов запроса в консоль
  }
);

//закрытие соединения с базой данных
connection.end();


В запросах с использованием параметров следует использовать вопросительные знаки вместо значений. Значения передаются в виде массива, который передается вторым аргументом функции query(). Количество вопросительных знаков должно соответствовать количеству значений в массиве.

Пользователь

от ian.heidenreich , 8 месяцев назад

@maya 

При использовании библиотеки mysql2 в Node.js для работы с MySQL базой данных, есть еще один способ выполнения запросов, который использует асинхронные функции. В примерах выше в качестве callback-функции передаются анонимные функции, но также можно воспользоваться async/await.


Пример асинхронного выполнения запроса SELECT с использованием async/await:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
const mysql = require('mysql2/promise');

async function selectData() {
  const connection = await mysql.createConnection({
    host: 'localhost',
    user: 'root',
    database: 'test'
  });

  try {
    const [rows, fields] = await connection.execute('SELECT * FROM products');
    console.log(rows);
  } catch (err) {
    console.error(err);
  }

  connection.end();
}

selectData();


Пример асинхронного выполнения запроса INSERT с использованием async/await:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
const mysql = require('mysql2/promise');

async function insertData() {
  const connection = await mysql.createConnection({
    host: 'localhost',
    user: 'root',
    database: 'test'
  });

  try {
    const [rows, fields] = await connection.execute('INSERT INTO products (name, price) VALUES (?, ?)', ['Product 1', 10.99]);
    console.log(rows);
  } catch (err) {
    console.error(err);
  }

  connection.end();
}

insertData();


Эти примеры показывают использование async/await для выполнения запросов к базе данных MySQL в Node.js.