Careeroza
Feature Modules
One Module per Feature
Put everything about one feature in its own folder and module. This keeps the code easy to find and lets teams work in parallel.
src/
├── app.module.ts
├── products/
│ ├── dto/
│ │ ├── create-product.dto.ts
│ │ └── update-product.dto.ts
│ ├── entities/product.entity.ts
│ ├── products.controller.ts
│ ├── products.service.ts
│ └── products.module.ts
├── orders/
│ ├── orders.controller.ts
│ ├── orders.service.ts
│ └── orders.module.ts
└── users/
└── ...ProductsModule
src/products/products.module.ts
import { Module } from '@nestjs/common';
import { ProductsController } from './products.controller';
import { ProductsService } from './products.service';
@Module({
controllers: [ProductsController],
providers: [ProductsService],
exports: [ProductsService], // OrdersModule needs it to check stock
})
export class ProductsModule {}src/app.module.ts
import { Module } from '@nestjs/common';
import { ProductsModule } from './products/products.module';
import { OrdersModule } from './orders/orders.module';
@Module({
imports: [ProductsModule, OrdersModule],
})
export class AppModule {}