| name | nestjs-patterns |
| description | Master NestJS framework with modules, controllers, services, dependency injection, guards, interceptors, and microservices patterns for enterprise applications. |
NestJS Patterns
Build enterprise-grade applications with NestJS using modular architecture, dependency injection, and production-ready patterns.
Core Patterns
Module Pattern
@Module({
imports: [TypeOrmModule.forFeature([User])],
controllers: [UserController],
providers: [UserService],
exports: [UserService],
})
export class UserModule {}
Controller Pattern
@Controller('users')
@UseGuards(JwtAuthGuard)
export class UserController {
constructor(private readonly userService: UserService) {}
@Get()
findAll(): Promise<User[]> {
return this.userService.findAll();
}
@Post()
create(@Body() createUserDto: CreateUserDto): Promise<User> {
return this.userService.create(createUserDto);
}
}
Service Pattern
@Injectable()
export class UserService {
constructor(
@InjectRepository(User)
private userRepository: Repository<User>,
) {}
async findAll(): Promise<User[]> {
return this.userRepository.find();
}
async create(createUserDto: CreateUserDto): Promise<User> {
const user = this.userRepository.create(createUserDto);
return this.userRepository.save(user);
}
}
Best Practices
- Use dependency injection
- Implement proper error handling
- Use DTOs for validation
- Implement guards for authentication
- Use interceptors for logging
- Create custom decorators
- Implement microservices patterns
- Write comprehensive tests