Как использовать MySQL2 с Deno
MySQL — самая популярная база данных в опросе разработчиков Stack Overflow 2022 и среди её пользователей Facebook, Twitter, YouTube и Netflix.
Посмотреть исходный код здесь.
Вы можете манипулировать и запросы к базе данных MySQL с помощью Deno, используя mysql2 пакет node и импортируя его через npm:mysql2. Это позволяет нам использовать его обёртку Promise и использовать top-level await.
import mysql from "npm:mysql2@^2.3.3/promise";
Подключение к MySQL
Мы можем подключиться к нашему серверу MySQL с помощью метода createConnection(). Вам потребуется хост (localhost если вы тестируете, или, скорее всего, адрес конечной точки облачной базы данных в производстве) и имя пользователя и пароль:
const connection = await mysql.createConnection({
host: "localhost",
user: "root",
password: "password",
});
Вы также можете необязательно указать базу данных во время создания подключения. Здесь мы собираемся использовать mysql2 для создания базы данных на лету.
Создание и заполнение базы данных
Теперь, когда у вас есть работающее подключение, вы можете использовать connection.query() с SQL-командами, чтобы создавать базы данных и таблицы, а также вставлять начальные данные.
Сначала мы хотим сгенерировать и выбрать базу данных для использования:
await connection.query("CREATE DATABASE denos");
await connection.query("use denos");
Затем мы хотим создать таблицу:
await connection.query(
"CREATE TABLE `dinosaurs` ( `id` int NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` varchar(255) NOT NULL, `description` varchar(255) )",
);
После создания таблицы мы можем заполнить данные:
await connection.query(
"INSERT INTO `dinosaurs` (id, name, description) VALUES (1, 'Aardonyx', 'An early stage in the evolution of sauropods.'), (2, 'Abelisaurus', 'Abels lizard has been reconstructed from a single skull.'), (3, 'Deno', 'The fastest dinosaur that ever lived.')",
);
Теперь у нас есть все данные, готовые для запросов.
Запросы к MySQL
Мы можем использовать тот же метод connection.query() для написания наших запросов. Сначала мы пытаемся получить все данные в нашей dinosaurs таблице:
const results = await connection.query("SELECT * FROM `dinosaurs`");
console.log(results);
Результат этого запроса — все данные в нашей базе данных:
[
[
{
id: 1,
name: "Aardonyx",
description: "An early stage in the evolution of sauropods."
},
{
id: 2,
name: "Abelisaurus",
description: `Abel's lizard" has been reconstructed from a single skull.`
},
{ id: 3, name: "Deno", description: "The fastest dinosaur that ever lived." }
],
Если мы хотим получить только один элемент из базы данных, мы можем изменить наш запрос:
const [results, fields] = await connection.query(
"SELECT * FROM `dinosaurs` WHERE `name` = 'Deno'",
);
console.log(results);
Что даёт нам результат из одной строки:
[{ id: 3, name: "Deno", description: "The fastest dinosaur that ever lived." }];
Наконец, мы можем закрыть подключение:
await connection.end();
Для получения дополнительной информации о mysql2, ознакомьтесь с их документацией здесь.
© 2018–2024 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/tutorials/how_to_with_npm/mysql2