АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗ndSqDBSQ 9 of 41 menu
НОВИНКА: Практика на Реальных Проектах и Работы в Портфолио. Бесплатный курс! Жми для записи!

Отправка запросов к базе данных в NodeJS

После соединения с базой к ней можно отправлять запросы. Для этого в блоке try к константе connection применяем метод query. В параметре метода следует прописать SQL запрос к БД:

const connection = await mysql.createConnection({ host: 'localhost', user: 'root', database: 'test', password: '' }); try { let res = await connection.query( "SELECT * FROM users" ); console.log(res) } catch (err) { console.log(err); }

После выполнения кода в консоль выведется многомерный массив, состоящий из массива с результатом запроса и массива с информацией о полях таблицы:

[ // массив с результатом запроса: [ { id: 1, name: 'user1', age: 23, salary: 400 }, { id: 2, name: 'user2', age: 25, salary: 500 }, { id: 3, name: 'user3', age: 23, salary: 500 }, { id: 4, name: 'user4', age: 30, salary: 900 }, { id: 5, name: 'user5', age: 27, salary: 500 }, { id: 6, name: 'user6', age: 28, salary: 900 } ], // массив с описанием полей таблицы: [ `id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, `age` INT NOT NULL, `salary` INT NOT NULL ] ]

Для удобства этот многомерный массив можно распаковать в две переменные. Пусть переменная results отвечает за вывод результата запроса, а fields - за информацию о полях таблицы:

let [results, fields] = await connection.query( 'SELECT * FROM users' );

Теперь давайте выведем в консоль данные из таблицы:

console.log(results);

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

[ { id: 1, name: 'user1', age: 23, salary: 400 }, { id: 2, name: 'user2', age: 25, salary: 500 }, { id: 3, name: 'user3', age: 23, salary: 500 }, { id: 4, name: 'user4', age: 30, salary: 900 }, { id: 5, name: 'user5', age: 27, salary: 500 }, { id: 6, name: 'user6', age: 28, salary: 900 } ]

А теперь посмотрим на информацию о структуре таблицы:

console.log(fields);

Результат выполненного кода:

[ `id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(255) NOT NULL, `age` INT NOT NULL, `salary` INT NOT NULL ]

Давайте еще немного улучшим читабельность нашего кода и вынесем запрос к БД в отдельную переменную query:

let query = "SELECT * FROM users"; try { let [results, fields] = await connection.query(query); console.log(results); } catch (err) { console.log(err); }

Выведите все данные из таблицы users.

Узнайте информацию о полях таблицы users.