Серверная разработкаПродвинутыйСкоро
Курс TypeORM
TypeScript, Express и TypeORM: сущности и связи, миграции, репозитории и QueryBuilder — ветка курса Node.js вместо Prisma.
Курс готовится к публикации
Материалы курса написаны и проверены, идёт подготовка к выходу на сайте: программа ниже — настоящая. Открытые курсы можно читать уже сейчас, а о запуске этого напишите — ответим, когда он появится.
- Модулей
- 8
- Ак. часов
- 60
- Разделов
- 86
Что нужно знать заранее. материал модулей 1-6 курса NodeJS — JavaScript, npm и модули, работа с файлами, HTTP и Express, основы баз данных.
Программа курса
8 модулей; каждый — полноценное занятие с теорией, листингами, практикой и домашним заданием.
- 1
Введение — TypeScript, Express, TypeORM
Это развилка основного курса NodeJS. В модуле 7 курса NodeJS реляционные БД (PostgreSQL) рассматриваются через ORM Prisma…
Что такое ORMTypeORMОсновы TypeScriptНастройка проектаSQLiteПервый запуск
- 2
Entity — создание сущностей
Entity (сущность) — это класс TypeScript, который описывает таблицу в базе данных. Каждый экземпляр класса соответствует одной строке в таблице…
@Entity@Column@PrimaryGeneratedColumnТипы столбцовnullabledefaultunique
- 3
Repository — CRUD-операции
В предыдущем модуле созданы сущности (Entity) — «чертежи» таблиц. Теперь нужно научиться работать с данными: создавать, читать, обновлять и удалять записи (CRUD).
RepositorysavefindfindOneByupdatedeletefindByУсловия поиска
- 4
Связи — One-to-Many, Many-to-One
В реальных приложениях данные связаны между собой. Например: товар принадлежит категории, у пользователя есть заказы, заказ содержит товары…
@ManyToOne@OneToMany@JoinColumnrelationsКаскадыВнешние ключи
- 5
Связи — Many-to-Many, One-to-One
Many-to-Many — связь «многие ко многим». Пример: у одного товара может быть несколько тегов (смартфон, Apple, 5G), и один тег может быть у нескольких товаров.
@ManyToMany@JoinTable@OneToOneПромежуточные таблицыТегиПрофили
- 6
QueryBuilder — сложные запросы
В модуле 3 мы использовали Repository API (find, findOneBy, findAndCount) для работы с данными. Это удобно для простых запросов, но для сложных — недостаточно.
createQueryBuilderselectwhereorderByjoingroupByАгрегацияПагинация
- 7
Миграции базы данных
До сих пор мы использовали synchronize: true в data-source.ts. При каждом запуске TypeORM сравнивает Entity с таблицами и автоматически обновляет схему…
synchronize vs миграцииgeneraterunrevertВерсионирование схемыSeed-данные
- 8
Итоговый API — Order и бизнес-логика, валидация, переход на PostgreSQL, что дальше
За семь модулей мы создали почти все компоненты API. Теперь соберём всё вместе и добавим последний ресурс — заказы (Orders).
OrderБизнес-логикаВсе маршрутыТестированиеclass-validatorPostgreSQLИтоговый проект