Заполнение базы данных в Node.js

В этой статье я хотел бы поговорить о заполнении базы данных с помощью Node.js и MySQL: что это такое и как его реализовать. Вы заметите, что на самом деле это довольно просто и понятно. В этом руководстве я выбрал MySQL в качестве системы базы данных, но эта процедура также должна работать с любой другой. В этом случае могут потребоваться небольшие изменения, касающиеся выполнения SQL-запроса.

Начнем с объяснения заполнения базы данных. "Источник"

Заполнение базы данных - это начальное заполнение базы данных данными. Заполнение базы данных - это процесс, в котором исходный набор данных предоставляется базе данных при ее установке. Это особенно полезно, когда мы хотим заполнить базу данных данными, которые мы хотим разработать в будущем.

Итак, наша цель - «накормить» базу данных фиктивными данными при ее инициализации. Это может быть очень полезно, особенно в процессе разработки или для приема на работу новых сотрудников, которые запускают среду разработки (базу данных) локально на своем компьютере.

Прежде всего, мы создаем новый сценарий SQL, который включает запросы для вставки фиктивных данных. Этот скрипт позже будет выполнен с использованием Node.js.

Скрипт раздачи: ./db/seeding.sql

Эта команда SQL вставляет новый набор данных в таблицу user. ? - это заполнитель, который заменяется переменной, начальным паролем, при вызове скрипта с использованием Node.js. Конечно, вы можете добавить сюда больше запросов.

Перед запуском сценария убедитесь, что таблицы базы данных были созданы, иначе произойдет сбой. Об этом позаботится большинство ORM.

Затем мы пишем сценарий Node.js, который требуется для установления соединения с базой данных и выполнения только что созданного фрагмента SQL.

Скрипт Node.js: ./db/index.js

Что здесь происходит?

  1. Загрузите переменные среды, используя dotenv
  2. Прочтите фрагмент SQL
  3. Подключиться к базе данных (MySQL)
  4. Сгенерировать случайный пароль (хешированный)
  5. Выполнить фрагмент SQL

В конце пароль администратора записывается в консоль, если все работает нормально. Вместо использования dotenv вы также можете использовать fs.readFileSync для загрузки учетных данных вашей базы данных из любого другого файла.

Если вы не используете MySQL, вам просто нужно изменить настройку подключения к базе данных. Я уверен, что для вашей системы баз данных есть пакет npm, который с этим справится.

И последнее, но не менее важное: давайте расширим package.json сценарии, чтобы упростить выполнение сценария Node.

{
  "scripts": {
    // ...
    "seed": "node db/index.js"
    // ...
  }
}

Теперь вы можете запустить заполнение базы данных с помощью одной команды из терминала: npm run seed. Вот и все! Ваша база данных заполнена фиктивными данными, и вы можете сосредоточиться на самом важном.

Также доступен репозиторий GitHub, включая пример приложения, использующего заполнение базы данных. Посмотри.