Для удобства работы над проектом используются инструменты из Node.js и npm. Все необходимые настройки произведены. Убедитесь, что на рабочем компьютере установлен актуальный LTS релиз Node.js**. Актуальная версия Node.js указана в файле package.json
в поле node
.
Убедитесь, что на рабочем компьютере установлен актуальный LTS релиз Node.js. Актуальная версия Node.js указана в файле package.json
в поле node
.
Выполните команду
npm install
В корне проекта находится файл app.env.example
. Скопируйте его содержимое в файл app.env
и настройте значения переменных.
Также, в директории shared/libs/models/prisma
находится файл .env.example
. Скопируйте его содержимое в файл .env
и настройте значение единственной переменной:
DATABASE_URL=postgres://admin:test@localhost:5432/guitar_shop
- Строка подключения к базе данных для PrismaORM.
DATABASE_URL=postgres://admin:test@localhost:5432/guitar_shop
- Строка подключения к базе данных.
POSTGRES_USER=admin
- Имя пользователя для подключения к базе данных PostgreSQL.POSTGRES_PASSWORD=test
- Пароль для подключения к базе данных PostgreSQL.POSTGRES_DB=guitar_shop
- Имя базы данных в PostgreSQL.
[email protected]
- E-mail адрес для входа в PgAdmin.PGADMIN_DEFAULT_PASSWORD=test
- Пароль для входа в PgAdmin.
JWT_ACCESS_SECRET=supersecret1212
- Секретный ключ для создания JWT токенов.JWT_ACCESS_EXPIRES_IN=30m
- Время жизни JWT токена.JWT_ALGORITHM=HS256
- Алгоритм, используемый для создания JWT токенов.
PORT=3333
- Порт, на котором будет запущен сервер приложения.
MAIL_SMTP_HOST=localhost
- Имя хоста SMTP-сервера для отправки электронной почты.MAIL_SMTP_PORT=8025
- Порт SMTP-сервера для отправки электронной почты.MAIL_USER_NAME=admin
- Имя пользователя для SMTP-сервера.MAIL_USER_PASSWORD=test
- Пароль для SMTP-сервера.[email protected]
- E-mail адрес отправителя для электронной почты.
UPLOAD_DIRECTORY=D:\Projects\guitar-shop\src\shared\modules\products\file\uploads
- Путь к директории, в которую будут загружаться файлы.
В проекте используется база данных PostgreSQL версии 14.
Если вы используете Docker, воспользуйтесь файлом docker-compose.yml
, расположенным в корне проекта, для быстрого разворачивания базы данных.
Пример разворачивания:
docker compose \
--file ./docker-compose.yml \
--env-file ./app.env \
--project-name "guitar-shop" \
up \
-d
В проекте заготовлен скрипт для применения миграций к базе данных:
npm run db:migrate
Сгенерируйте нужное количество товаров. Для этого необходимо указать их количество и строку подключения:
npm run ts ./src/main.cli.ts -- --generate 50 postgres://admin:test@localhost:5432/guitar_shop
Выполните команду
npm start
В package.json
предопределены несколько сценариев.
start
- Компилирует проект в папку dist и запускает его.start:dev
- Запускает приложение в режиме разработки с возможностью автоматического перезапуска при изменении файлов.start:debug
- Запускает приложение в режиме отладки с возможностью автоматического перезапуска при изменении файлов.start:prod
- Запускает скомпилированное приложение в продакшене.lint
- Проверяет код на соответствие правилам линтинга и пытается автоматически исправить ошибки, если это возможно.ts
- Запускает TypeScript-файлы с помощью ts-node.
db:generate
- Генерирует клиент Prisma на основе схемы базы данных.db:reset
- Откатывает все миграции в базе данных.db:lint
- Проверяет схему базы данных на наличие ошибок.db:migrate
- Применяет новые миграции к базе данных.
npm run start:dev
npm run lint
npm run ts ./path/to/your/file.ts
npm run ts -- <Путь к модулю с ts-кодом>
Пакет ts-node
позволяет выполнить TS-код в Node.js без предварительной компиляции. Используется только на этапе разработки.
npm start
В процессе запуска проекта будет выполнен процесс «Сборки проекта» и запуска результирующего кода.