Вот пример структуры файлов проекта для API на NestJS с использованием Prisma, который включает модель Documents
:
javascript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | project-root/ ├── prisma/ │ ├── schema.prisma # Файл Prisma-схемы, описывающий модели и связи │ ├── seed.ts # Скрипт для заполнения базы данных тестовыми данными │ └── migrations/ # Папка с миграциями Prisma ├── src/ │ ├── app.module.ts # Главный модуль приложения │ ├── main.ts # Точка входа в приложение │ ├── prisma/ │ │ ├── prisma.module.ts # Модуль Prisma для подключения к базе данных │ │ └── prisma.service.ts # Сервис Prisma для взаимодействия с базой данных │ ├── documents/ │ │ ├── documents.module.ts # Модуль для работы с моделью Documents │ │ ├── documents.controller.ts # Контроллер для обработки HTTP-запросов │ │ ├── documents.service.ts # Сервис для бизнес-логики │ │ └── dto/ │ │ └── create-document.dto.ts # DTO для создания документа │ └── folder/ # (Опционально) Модуль для работы с папками │ ├── folder.module.ts │ ├── folder.controller.ts │ ├── folder.service.ts │ └── dto/ │ └── create-folder.dto.ts ├── .env # Файл с переменными окружения (например, DATABASE_URL) ├── package.json # Файл с зависимостями и скриптами проекта ├── tsconfig.json # Конфигурация TypeScript └── README.md # Документация проекта |
Объяснение структуры:
prisma/
:- Содержит файл
schema.prisma
, где описаны модели базы данных. seed.ts
используется для заполнения базы данных тестовыми данными.- Папка
migrations/
содержит миграции, созданные Prisma.
- Содержит файл
src/
:- Основная папка с исходным кодом приложения.
app.module.ts
: Главный модуль приложения, где подключаются все остальные модули.main.ts
: Точка входа в приложение, где запускается сервер.
src/prisma/
:- Модуль Prisma для подключения к базе данных.
- Сервис Prisma предоставляет методы для работы с базой данных.
src/documents/
:- Модуль для работы с моделью
Documents
. documents.controller.ts
: Обрабатывает HTTP-запросы (например,GET
,POST
).documents.service.ts
: Содержит бизнес-логику и взаимодействие с базой данных.dto/
: Содержит DTO (Data Transfer Object) для валидации входящих данных.
- Модуль для работы с моделью
src/folder/
(опционально):- Модуль для работы с папками (
Folder
), если требуется.
- Модуль для работы с папками (
- Корневые файлы:
.env
: Хранит переменные окружения, такие какDATABASE_URL
.package.json
: Содержит зависимости и скрипты для запуска проекта.tsconfig.json
: Конфигурация TypeScript.
Эта структура соответствует стандартам NestJS и позволяет легко масштабировать проект.