Sequelize — это объектно-реляционный преобразователь Node.js (ORM), который предоставляет простой в использовании API для реляционных баз данных, таких как Oracle, PostgreSQL, MySQL, MariaDB, SQLite и других.
PostgreSQL — это широко используемая система управления реляционными базами данных (RDBMS) с открытым исходным кодом, известная своими обширными функциями, отличной безопасностью и масштабируемостью.
PostgreSQL совместим с несколькими языками программирования, включая JavaScript, что делает его идеальным выбором для веб-приложений и приложений, управляемых данными. Здесь вы научитесь настраивать базу данных Postgres в Node.js с помощью Sequelize.
Шаг 1: Установка зависимостей
Прежде чем вы сможете использовать PostgreSQL, вам необходимо установить его в своей системе. Чтобы скачать PostgreSQL, перейдите на Веб-сайт PostgreSQL и выберите свою операционную систему. Если у вас возникнут проблемы во время этого процесса в macOS, проверьте
установка PostgreSQL на macOS.Кроме того, вы можете использовать PostgreSQL в облаке, используя такие платформы, как СлонSQL которые предлагают PostgreSQL как услугу.
Далее установите продолжать выполнив следующую команду:
npm установить продолжение
Затем установите драйвер базы данных PostgreSQL, выполнив следующую команду:
npm установить pg pg-hstore
Шаг 2. Подключение к базе данных PostgreSQL
В исходном каталоге вашего проекта создайте конфигурация папка. в конфигурация папку, создайте db.js файл. Этот файл будет содержать весь код, соединяющий ваше приложение Node.js с базой данных PostgreSQL.
Далее, в вашем db.js файл, импорт Сиквел от продолжать.
константа {Последовательность} = требовать("продолжение");
Далее необходимо создать Сиквел пример. Этот экземпляр принимает параметры соединения, такие как имя базы данных, имя пользователя и пароль, в качестве аргументов. В качестве альтернативы он принимает в качестве аргумента один URI соединения.
Например:
// Параметры подключения
константа продолжение = новый Продолжение('база данных', 'имя пользователя', 'пароль')
// с URI
константа продолжение = новый Упорядочить (process.env. POSTGRESQL_DB_URI)
Кроме того, этот конструктор принимает объект конфигурации в качестве необязательного аргумента.
Затем проверьте соединение с продолжением, добавив код ниже вашего db.js файл:
константа testDbConnection = асинхронный () => {
пытаться {
Ждите сиквелизировать.аутентифицировать();
консоль.бревно("Соединение успешно установлено.");
} ловить (ошибка) {
консоль.ошибка("Невозможно подключиться к базе данных:", ошибка);
}
};
Блок кода выше вызывает продолжать.аутентифицировать() метод, чтобы проверить, в порядке ли соединение, и печатает «Соединение успешно установлено». утешить, если это так. Если есть ошибка подключения, он печатает «Невозможно подключиться к базе данных:» вместе с ошибкой.
Наконец, экспортируйте экземпляр sequenceize и тестдбсоединение функция.
модуль.экспорт = { кв: продолжение, testDbConnection };
Шаг 3: Создание модели Sequelize
В исходном каталоге вашего проекта создайте модели папка. Эта папка будет содержать все ваши модели для продолжения. Далее создайте файл модели. Имя, которое вы даете файлу, должно предоставлять информацию о представлении модели.
В файле модели импортируйте экземпляр sequenceize.
// пример.js
константа { кв } = требовать("../конфигурации/БД");
Далее импорт Типы данных от продолжать.
константа {Типы данных} = требовать("продолжение");
Типы данных позволяет установить требуемый тип данных для каждого свойства вашей модели.
Вы можете создать новую модель продолжения, представляющую таблицу в вашей базе данных, вызвав метод определять на вашем экземпляре sequenceize.
определять Метод принимает два аргумента: имя модели и объект атрибутов. Название модели представляет собой название модели. Объект атрибутов представляет столбцы базы данных, причем каждое свойство представляет столбец.
Вот пример модели продолжения:
константа Пользователь = sq.define("пользователь", {
электронная почта: {
тип: типы данных. НИТЬ,
разрешитьНуль: ЛОЖЬ,
основной ключ: истинный,
},полное имя: {
тип: типы данных. НИТЬ,
},
возраст: {
тип: типы данных. ЦЕЛОЕ,
},
занято: {
тип: типы данных. логический,
значение по умолчанию: ЛОЖЬ,
},
});
Блок кода выше определяет Пользователь модель с электронная почта, полное имя, возраст, и занятый характеристики.
электронная почта свойство является строковым типом, который не может быть пустым (разрешитьNull: ложь), а также выступает в качестве первичного ключа для Пользователь стол (первичный ключ: правда). полное имя и возраст свойство представляет собой строку (Типы данных. НИТЬ) и целочисленный тип (Типы данных. ЦЕЛОЕ ЧИСЛО), соответственно. занятый свойство является логическим типом со значением по умолчанию ЛОЖЬ, что означает, что если он не указан, в базе данных для него будет автоматически установлено значение false.
Далее позвоните в синхронизировать метод на вашей модели. Этот метод принимает объект конфигурации в качестве аргумента. В зависимости от опций в объекте конфигурации синхронизировать метод может:
- Пользователь.sync(): создать таблицу, если она не существует, и ничего не делать, если она существует.
- User.sync({сила: правда}): Создайте таблицу и удалите первую, если она уже существует.
- User.sync({изменить: true}): проверьте текущее состояние таблицы в базе данных и внесите необходимые изменения в таблицу, чтобы она соответствовала модели.
Например:
Пользователь.синхронизация().затем(() => {
консоль.бревно("Модель пользователя синхронизирована");
});
Приведенный выше блок кода создает таблицу базы данных для Пользователь модель, если она не существует, и ничего не делает, если она существует.
Наконец, экспортируйте свою модель:
модуль.экспорт = пользователь;
Запрос к базе данных PostgreSQL
Sequelize предоставляет различные методы, которые позволяют вам взаимодействовать с вашей базой данных PostgreSQL без написания необработанных данных. SQL-команды.
Сохранение данных в PostgreSQL
Чтобы сохранить данные в базу данных PostgreSQL, вызовите метод создавать метод вашей модели и передать в качестве аргумента объект, реализующий модель PostgreSQL.
Например:
константа Майк = User.create({
электронная почта: "Майк@email.com",
полное имя: "Майк Смит",
возраст: 30,
занято: истинный,
});
Блок кода выше создает Пользователь случай Майк в вашей базе данных и автоматически генерирует уникальный идентификатор.
Получение данных из PostgreSQL
Данные можно получить несколькими способами из базы данных PostgreSQL с помощью sequenceize, но это зависит от характера данных, которые вы хотите получить.
Наиболее распространенными методами получения данных являются найтиодин и найти все методы. найти все возвращает все экземпляры данных, удовлетворяющие заданному запросу, а найтиодин возвращает первый экземпляр, удовлетворяющий запросу.
Например:
// Находим всех пользователей
константа пользователи = Ждите Пользователь.найтиВсе();
Приведенный выше код вернет все Пользователь экземпляры в базе данных.
Вы можете отфильтровать возвращенные данные, используя где заявление. Этот оператор позволяет добавить к запросу определенные условия. Ваш запрос вернет только те экземпляры, которые соответствуют этим условиям.
Например:
Пользователь.findAll({
где: {
занято: ЛОЖЬ
}
});
Приведенный выше код вернет все Пользователь случаи с их занятый свойство установлено на ЛОЖЬ в базе данных.
Обновление данных в PostgreSQL
Вы можете обновить данные в базе данных PostgreSQL, вызвав метод обновлять метода и передачи фильтра в качестве аргумента.
Например:
Ждите Пользователь.обновление({ занятый: истинный }, {
где: {
занято: ЛОЖЬ
}
});
Приведенный выше код изменяет все Пользователь случаи с занятый значение ЛОЖЬ к истинный.
Кроме того, вы можете обновить данные, вручную изменив свойства, которые вы хотите изменить, и вызвав сохранять метод на экземпляре.
Например:
константа пользователь Майк = Ждите Пользователь.findOne({ где: { электронная почта: "Майк@email.com" } });
если(пользователь Майк !== нулевой) {
userMike.email = "[email protected]"
Ждите userMike.save()
}
Приведенный выше код запрашивает базу данных для пользователя, имеющего электронную почту «[email protected]», используя найтиодин метод. Если пользователь найден, он переназначает свойство электронной почты на «[email protected]» и вызывает сохранять метод обновления базы данных.
Удаление данных в PostgreSQL
Вы можете удалить данные в PostgreSQL, вызвав разрушать метода и передачи фильтра в качестве аргумента.
Например:
Ждите Пользователь.уничтожить({
где: {
электронная почта: "[email protected]"
}
});
Приведенный выше код запрашивает базу данных для пользователя с адресом электронной почты «[email protected]» и удаляет пользователя из базы данных.
Преимущества использования PostgreSQL с Sequlize
Написание необработанных SQL-запросов для взаимодействия с базой данных PostgreSQL может быть проблематичным. С помощью Sequelize вы можете легко определять модели, создавать ассоциации между ними и запрашивать базу данных с помощью простого и интуитивно понятного API. В качестве альтернативы вы можете использовать другие ORM, такие как TypeORM, для взаимодействия с базой данных PostgreSQL без необходимости писать необработанные SQL-запросы.