Запросы и объекты с типами
NestJS - полезный фреймворк. Сегодня мы увидим, как настроить TypeORM с Postgres в NestJS.
Но прежде чем вдаваться в подробности, ответим на несколько вопросов.
Что такое NestJS?
NestJS - это платформа для создания эффективных масштабируемых серверных приложений Node.js. Он использует прогрессивный JavaScript, построен на TypeScript и полностью поддерживает его.
NestJS предоставляет готовую архитектуру приложений, которая позволяет разработчикам создавать хорошо тестируемые, масштабируемые, слабо связанные и легко обслуживаемые приложения.
Определение TypeORM
TypeORM - это объектно-реляционный преобразователь (ORM), который может работать в Node.js, браузерах и Cordova - и может использоваться с TypeScript и JavaScript (ES5, ES6, ES7).
Целью этого является оказание помощи с помощью функций JavaScript и помощь в разработке приложений, использующих базы данных, от малых до крупных.
Зачем использовать TypeORM?
Мы выбрали TypeORM, потому что это определенно зрелая ORM, доступная для Node.js. Кроме того, он написан на TypeScript и неплохо работает с NestJS.
Для тех, кто уже знаком с другими упомянутыми технологиями и с тем, что делают ORM, я хотел бы помочь вам опробовать их и понять, почему мне понравилось использование этого уровня ORM.
Итак, давайте использовать Postgres, используя TypeORM в NestJS. Предполагая, что вы уже установили NestJS и Postgres, нам нужно установить все зависимости TypeORM:
npm i — save @nestjs/typeorm typeorm pg
После завершения процесса установки, во-первых, нам понадобится хотя бы один объект.
Пакет TypeORM поддерживает шаблон проектирования репозитория, поэтому каждая сущность имеет свой собственный репозиторий. Репозитории можно получить при подключении к базе данных.
Теперь создайте объект блога внутри каталога блога:
Нам необходимо создать модуль базы данных на основе пакета TypeORM. Мы можем создать модуль базы данных с помощью Nest CLI.
Например:
nest g mo database
Or:
nest generate module database
Тогда вы увидите что-то вроде этого.
Внутри database.module.ts
импортируйте TypeOrmModule
и укажите следующее:
Метод forRoot()
принимает тот же объект конфигурации, что и createConnection()
из пакета TypeORM
.
Объект Blog
принадлежит каталогу blog
. Этот каталог представляет собой BlogModule
. Вы сами решаете, где вы собираетесь хранить файлы модели.
Давайте посмотрим на BlogModule
:
Этот модуль использует метод forFeature()
, чтобы определить, какие репозитории должны быть зарегистрированы в текущей области.
Теперь мы можем вставить BlogRepository
в BlogService
с помощью декоратора @InjectRepository()
.
Не забудьте импортировать BlogModule
и DatabaseModule
в корень AppModule
:
Заключение
В этой статье мы узнали, как настроить TypeORM с Postgres в приложении NestJS.
Спасибо за чтение - надеюсь, это вам помогло.
Более подробная информация доступна на официальном сайте документации NestJS.