Отправка запросов к базе данных в 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
.