Sequelize

Последнее обновление: 24.11.2023

Sequelize - это ORM-библиотека для приложений на Node.js, которая осуществляет сопоставление таблиц в бд и отношений между ними с классами. При использовании Sequelize мы можем не писать SQL-запросы, а работать с данными как с обычными объектами. Причем Sequelize может работать с рядом СУБД - MySQL, Postgres, MariaDB, SQLite, MS SQL Server.

Более подробно про работу sequelize можно посмотреть в официальной документации. А в данном случае мы сосредаточимся на основных моментах работы с данными на примере взаимодействия с SQLite, поскольку SQLite не требует установки сервера и поддерживается из коробки.

Вначале установим пакет sequelize.

npm install --save sequelize

Подключение к базе данных

Для подключения к базе данных прежде всего необходимо создать объект Sequelize:

const Sequelize = require("sequelize");
const sequelize = new Sequelize("usersdb2", "root", "123456", {
  dialect: "mysql",
  host: "localhost"
});

Для создания объекта sequelize используется функция Sequelize, которая принимает ряд параметров. Количество параметров может различаться в зависимости от используемой системы базы данных. Но в большинстве случаев, в частности, для СУБД, для которых требуется сервер (MySQL, PostgreSQL, MSSQL, Oracle, MariaDB) будут использовать следующие параметры. Первый параметр - имя базы данных. Второй параметр - логин к бд, третий параметр - пароль. Это обязательные параметры.

Кроме того, с помощью четвертого параметра мы можем задать ряд дополнительных опций конфигурации. Четвертый параметр представляет объект, который имеет множество свойств. В данном случае используются только два. Первое свойство - dialect указывает на диалект языка SQL, который используется в запросах - в данном случае "mysql". Второе свойство host представляет адрес, по которому запущен сервер. По умолчанию host имеет значение "localhost", поэтому для подключения к локальной базе данных это свойство в принципе можно не указывать.

Для свойства dialect в зависимости от того, с какой СУБД предстоит работать, могут использоваться следующие значения:

  • mysql

  • mariadb

  • sqlite

  • postgres

  • mssql

  • oracledb

Подключение к sqlite

Для работы с SQLite также должен быть установлен пакет sqlite3:

npm install --save sqlite3

И при создании объекта Sequelize в параметрах указывается dialect: "sqlite":

const Sequelize = require("sequelize");
const sequelize = new Sequelize({
  dialect: "sqlite",
  storage: "metanit.db"
});

Кроме того, с помощью параметра storage устанавливается путь к базе данных.

Подключение к mysql

Для работы с MySQL также должен быть установлен пакет mysql2, работа с котором разбиралась в прошлой главе:

npm install --save mysql2

И при создании объекта Sequelize в параметрах указывается dialect: "mysql":

const Sequelize = require("sequelize");
const sequelize = new Sequelize("usersdb2", "root", "123456", {
  dialect: "mysql",
  host: "localhost"
});

Подключение к mssql

Для работы с MS SQL Server в проекте должен быть установлен пакет tedious:

npm install --save tedious

И при создании объекта Sequelize в параметрах указывается dialect: "mssql":

const Sequelize = require("sequelize");
const sequelize = new Sequelize("usersdb2", "sa", "123456", {
  dialect: "mssql",
  host: "localhost",
  port: "1433"
});

Кроме диалекта в настройках конфигурации также указывается параметр host - адрес сервера и port. Если сервер запущен на порту 1433, то в принципе его необязательно указывать, так как этот порт Sequelize использует по умолчанию. Любой другой порт необходимо указывать.

При создании подключения к MSSQL Server мы можем столкнуться с рядом сложностей, которые вытекают в основном из конфигурации самого сервера. Прежде всего, нам надо убедиться, что запущенный экземпляр сервера принимает запросы по TCP. Для этого перейдем в панели управления к пункту Администрирование и затем выберем пункт Управление компьютером

Настройка MS SQL Server для Sequelize

В открывшейся вкладке перейдем к пункту Службы и приложения -> SQL Server Configuration Manager -> SQL Server Network Configuration и найдем нужный нам экземпляр сервера. Убедимся, что для включен параметр TCP/IP (то есть имеет значение "Enabled").

Настройка порта MS SQL Server для Sequelize

Для использования логина и пароля в MS SQL Server убедимся, что он настроен на смешанную аутентификацию. Для этого подключимся к серверу через SQL Server Managemen Studio и перейдем к свойствам сервера:

Настройка логина и пароля MS SQL Server для Sequelize

Затем в открывшемся окне на вкладке Security выбрем режим SQL Server and Windows Authentication mode.

Windows Authentication for MS SQL Server in Sequelize

После применения всех настроек перезапустим сервер.

И естественно перед подключением необходимо создать базу данных, с которой будет идти взаимодействие.

Подключение к postgres

Для работы с СУБД Postgres также необходимо установить пакет pg:

npm install --save pg

И при создании объекта Sequelize в параметрах указывается dialect: "postgres":

const Sequelize = require("sequelize");
const sequelize = new Sequelize("usersdb2", "root", "123456", {
  dialect: "postgres"
});

Все остальное взаимодействие с базой данных в большинстве случаев за некоторыми исключениями практически не зависит от конкретной СУБД. А это значит, что большую часть кода (если не весь код) мы можем использовать для подключения к разным СУБД.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850