TL;DR
nest new scaffolds project. nest generate (or nest g) creates modules/services/controllers.
- Everything is modular: Module → Controller → Service pattern.
- Use
--flat to skip folder creation, --no-spec to skip test files.
Essential Commands
# Create project
nest new my-app
# Generate (shorthand: nest g)
nest g module users # Create module
nest g controller users # Create controller
nest g service users # Create service
nest g resource users # Module + Controller + Service + DTOs (CRUD)
# Other generators
nest g pipe validation
nest g guard auth
nest g interceptor logging
nest g filter http-exception
nest g middleware logger
nest g gateway events # WebSocket
Flags Cheat Sheet
| Flag |
Effect |
--flat |
Don't create subdirectory |
--no-spec |
Skip .spec.ts test file |
--dry-run |
Preview without writing files |
--project |
Target specific project in monorepo |
Project Structure (after nest g resource users)
src/
├── users/
│ ├── users.module.ts
│ ├── users.controller.ts
│ ├── users.service.ts
│ ├── dto/
│ │ ├── create-user.dto.ts
│ │ └── update-user.dto.ts
│ └── entities/
│ └── user.entity.ts
├── app.module.ts
└── main.ts
Quick Start Recipe
nest new my-api
cd my-api
nest g resource users --no-spec
nest g resource posts --no-spec
nest g guard auth --flat
nest g middleware logger --flat
npm run start:dev