В этом посте шаг за шагом рассматривается базовый пример связывания таблиц с помощью Node ORM, Sequelize. Я включу данные, используемые в примерах, а также конечную точку GET API, которая взаимодействует с нашими таблицами, отправляя красиво преобразованные ответы. В приведенных ниже примерах используется версия Node v8.11.1 и Sequelize. Документацию Sequelize по ассоциациям можно найти здесь.
Введение
Sequelize — это пакет Node, который позволяет разработчику взаимодействовать с различными базами данных SQL с помощью единого API. ORM действует как интерфейс между двумя системами. В частности, он выполняет объектно-реляционное сопоставление (ORM) между вашим внутренним кодом и базой данных SQL.
Это означает, что вы, разработчик, можете писать объектно-ориентированный код, а Sequelize переведет его на диалект SQL. Независимо от того, используете ли вы MySQL, SQLite, Sequelize поможет вам. Укажите диалект базы данных в файле конфигурации, а Sequelize позаботится обо всем остальном.
ORM предоставляет разработчикам преимущества по сравнению с базовыми, такими как экономия времени и усилий и сосредоточение внимания на бизнес-логике. Код надежный, а не избыточный. ORM помогает эффективно управлять запросами для нескольких таблиц. И, наконец, ORM (например, sequenceize) может подключаться к разным базам данных (что удобно при переключении с одной базы данных на другую).
Sequelize основан на промисах, и это здорово! Вы можете связать свои функции в цепочку для повышения удобочитаемости и простоты обслуживания в будущем.
Довольно легко найти в Интернете базовые примеры Sequelize CRUD.
Начало работы с Sequelize
Sequelize — это ORM на основе обещаний для Node.js. Sequelize прост в освоении и имеет десятки интересных функций, таких как синхронизация, ассоциация, проверка и т. д. Он также поддерживает PostgreSQL, MySQL, SQLite и MSSQL. Я предполагаю, что на вашем компьютере запущена какая-то служба базы данных SQL. В настоящее время я использую MySQL.
Установка продолжения
Сиквел Документация;
Как настроить Sequelize Connection?
Для краткости я предпочитаю делить код на модули. Я начинаю с файла config.json
/config.js
в корне моей папки application/config, в котором я определяю общие ограничения, необходимые для установки соединения с базой данных:
Вы можете сделать это в своем файле .env
, если хотите следовать этому шаблону. Для получения дополнительной информации см. dotenv
.
После определения переменных конфигурации в моей папке models/
или там, где я определяю схему таблиц в базе данных на уровне приложения, я создаю соединение в файле index.js
:
Важно отметить, что я выставляю объект db
, который содержит все определения схемы модели/таблицы. С этого момента мне просто нужно импортировать объект db
, чтобы с его помощью применять операции к определенным таблицам базы данных.
Вывод
Sequelize — это многофункциональный ORM для Node.js. У него есть документация, которая иногда может не давать прямых решений ваших проблем, но для каждой проблемы есть решение. Большинство моделей на основе запросов очень похожи на модели в MongoDB (особенно операции CRUD).