Spec-Zone.ru › Deno 2

Как использовать 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API