Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

Sequelize — это объектно-реляционный преобразователь Node.js (ORM), который предоставляет простой в использовании API для реляционных баз данных, таких как Oracle, PostgreSQL, MySQL, MariaDB, SQLite и других.

PostgreSQL — это широко используемая система управления реляционными базами данных (RDBMS) с открытым исходным кодом, известная своими обширными функциями, отличной безопасностью и масштабируемостью.

PostgreSQL совместим с несколькими языками программирования, включая JavaScript, что делает его идеальным выбором для веб-приложений и приложений, управляемых данными. Здесь вы научитесь настраивать базу данных Postgres в Node.js с помощью Sequelize.

Шаг 1: Установка зависимостей

Прежде чем вы сможете использовать PostgreSQL, вам необходимо установить его в своей системе. Чтобы скачать PostgreSQL, перейдите на Веб-сайт PostgreSQL и выберите свою операционную систему. Если у вас возникнут проблемы во время этого процесса в macOS, проверьте

instagram viewer
установка 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-запросы.