В этом посте шаг за шагом рассматривается базовый пример связывания таблиц с помощью 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).