Вот пример структуры файлов проекта для API на NestJS с использованием Prisma, который включает модель Documents
:
javascript
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 и позволяет легко масштабировать проект.