TypeORM - это ORM, построенный на основе TypeScript. Он может работать на различных платформах, таких как NodeJS, Ionic, React Native, Electron и т. Д.

TypeORM поддерживает шаблоны «Active Record» и «Data Mappern», что означает, что вы можете писать высококачественные, масштабируемые, легко обслуживаемые приложения.

По версии ТипОРМ

  • поддерживает как DataMapper, так и ActiveRecord (на ваш выбор)
  • объекты и столбцы
  • типы столбцов, специфичные для базы данных
  • менеджер сущности
  • репозитории и пользовательские репозитории
  • чистая объектная реляционная модель
  • ассоциации (отношения)
  • нетерпеливые и ленивые отношения
  • однонаправленные, двунаправленные и самодостаточные отношения
  • поддерживает множественные шаблоны наследования
  • каскады
  • индексы
  • сделки
  • миграции и автоматическое создание миграций
  • пул соединений
  • репликация
  • использование нескольких подключений к базе данных
  • работа с несколькими типами баз данных
  • запросы между базами данных и схемами
  • элегантный синтаксис, гибкий и мощный QueryBuilder
  • левое и внутреннее соединение
  • правильная разбивка на страницы для запросов с использованием объединений
  • кеширование запросов
  • потоковая передача сырых результатов
  • протоколирование
  • слушатели и подписчики (крючки)
  • поддерживает шаблон закрытия таблицы
  • объявление схемы в моделях или отдельных файлах конфигурации
  • конфигурация подключения в форматах json / xml / yml / env
  • поддерживает MySQL / MariaDB / Postgres / CockroachDB / SQLite / Microsoft SQL Server / Oracle / SAP Hana / sql.js
  • поддерживает базу данных MongoDB NoSQL
  • работает на платформах NodeJS / Browser / Ionic / Cordova / React Native / NativeScript / Expo / Electron
  • Поддержка TypeScript и JavaScript
  • созданный код является производительным, гибким, чистым и удобным в обслуживании
  • следует всем возможным лучшим практикам
  • CLI

Мы будем использовать шаблон Active Record и postgreSQL в качестве базы данных до конца статьи.

Установка - Часть 1

Сначала установите TypeORM глобально через npm / yarn.

npm install typeorm -g

Затем перейдите в каталог, в котором вы хотите создать проект, и выполните команды.

typeorm init --name MyAwesomeTypeORMProject --database postgres
cd MyAwesomeTypeORMProject && npm install

ormconfig.json - Часть 2

ormconfig.json - это файл конфигурации для TypeORM. Он включает информацию о вашем подключении и некоторые свойства, связанные с TypeORM.

  • тип: это тип базы данных, которую вы хотите подключить.
  • хост: хост вашей базы данных.
  • порт: порт вашей базы данных.
  • имя пользователя: имя пользователя базы данных
  • пароль: пароль базы данных
  • база данных: имя базы данных
  • синхронизировать: если это правда, ваши объекты будут синхронизированы с базой данных.
  • ведение журнала: если это правда, ваши SQL-запросы будут записываться в выбранный инструмент (консоль и т. д.).
  • объекты / миграции / подписчики: в этих свойствах хранятся ваши объекты / миграции / подписчики.
  • cli: То же самое с объектами / миграциями / подписчиками, но для typeorm-cli.

Сущности - Часть 3

TypeORM использует декораторы для создания сущностей. Например, «@Entity», «@Column», «@PrimaryGeneratedColumn».

По сути, сущности TypeORM - это просто классы TypeScript, украшенные декоратором «@Entity». Это будут наши таблицы в базе данных.

Свойства, которые украшены символом «@Column», как декораторы, являются столбцами таблицы в нашей базе данных. TypeORM генерирует тип из свойства и связывает его с типами базы данных.

CRUD-операции с сущностями - часть 4

Мы можем получить доступ к таким методам сущности, как «найти», «сохранить», «обновить», «создать», потому что мы используем шаблон «Active Record». После того, как мы создали соединение с базой данных, мы можем использовать эти методы для добавления, создания и удаления записей.

Создать операции

В TypeORM мы можем создавать записи таблиц с помощью методов «Entity.create ()» и «Entity.save ()». Как и в UOW-шаблоне entity framework, в базе данных ничего не произойдет до вызова метода Entity.save ().

Читать операции

Мы можем получить все данные о пользовательской таблице методом Entity.find (). Все просто, правда? Если мы хотим отфильтровать данные, мы можем использовать TypeORM's where.

Если нам нужна одна строка из таблицы, мы можем использовать метод Entity.findOne (), чтобы получить одну запись из таблицы.

Обновить операции

Мы можем обновить наши записи, изменяя сущности и вызывая «Entity.save ()» или просто вызывая «Entity.update ()».

Удалить операции

Удалить операции в TypeORM можно с помощью методов «Entity.remove ()», «Entity.delete ()». Это жесткое удаление невозможно отменить, если у вас нет резервной копии.

Я не являюсь носителем английского языка, прошу прощения, если допустил опечатки. Я буду публиковать больше на TypeORM. Я думаю, что это лучший ORM для среды javascript / typescript прямо сейчас. Это только основы. Мы углубимся в «отношения», «хуки», «подписчики», «слушатели», «миграции», «результаты кеширования» в следующих статьях.