Войдите, чтобы смотреть видео
Видеоуроки, интерактивный редактор и сохранение прогресса — бесплатно, сразу после входа.
ВойтиСоздать аккаунт — бесплатноЗакончили урок?
Войдите, чтобы отмечать прогресс
Видеоуроки, интерактивный редактор и сохранение прогресса — бесплатно, сразу после входа.
ВойтиСоздать аккаунт — бесплатноЗакончили урок?
Войдите, чтобы отмечать прогресс
.envСоздай файл с переменными окружения для порта, режима запуска, хоста, строки подключения к PostgreSQL и секрета для JWT.
config/env.tsСоздай модуль, который загружает .env, преобразует числовые значения и собирает все переменные окружения в один объект env.
toNumberФункция toNumber нужна для безопасного преобразования строки из переменной окружения в число с fallback значением по умолчанию.
validateEnvФункция validateEnv проверяет, что обязательные переменные окружения заданы, и останавливает приложение с ошибкой, если их нет.
src/db/data-source.tsСоздай конфиг TypeORM DataSource, который подключается к PostgreSQL, использует сущности приложения и автоматически запускает миграции при старте.
DataSource конфигЭтот объект описывает подключение к базе и правила работы ORM.
type: 'postgres' — используется PostgreSQLurl: env.databaseUrl — строка подключения берется из .envsynchronize: false — автоизменение схемы базы отключеноlogging: false — SQL логи отключеныmigrationsRun: true — миграции применяются автоматически при стартеentities — список сущностей, с которыми работает TypeORMmigrations — путь к файлам миграцийsynchronize: falseАвтосинхронизация схемы базы отключается, чтобы структура базы менялась только через миграции, а не неявно при запуске приложения.
migrationsRun: trueЭта опция нужна, чтобы при запуске приложения TypeORM сам применял все неприменённые миграции.