Nest.js 是 Node.js 生态中最具"框架感"的后端框架,受 Angular 启发,原生支持 TypeScript,提供模块化架构、依赖注入、装饰器路由等企业级特性。
一、核心概念
| 概念 | 类比 | 职责 |
|---|---|---|
| Module | Angular Module | 组织相关组件的容器 |
| Controller | Angular Component | 处理 HTTP 请求/响应 |
| Service | Angular Service | 业务逻辑、数据访问 |
| Provider | DI token | 可被注入的类/值/工厂 |
| Pipe | 管道 | 数据转换/验证 |
| Guard | 路由守卫 | 权限检查(CanActivate) |
| Interceptor | 拦截器 | AOP 切面逻辑(日志/转换) |
二、快速开始
npm install -g @nestjs/cli
nest new my-project
cd my-project
npm run start:dev
// app.controller.ts
@Controller()
export class AppController {
@Get()
getHello(): string {
return 'Hello World!';
}
}
三、模块与依赖注入
// users.module.ts
@Module({
controllers: [UsersController],
providers: [UsersService],
exports: [UsersService],
})
export class UsersModule {}
// users.service.ts
@Injectable()
export class UsersService {
findAll(): User[] {
return [{ id: 1, name: 'Alice' }];
}
}
// users.controller.ts
@Controller('users')
export class UsersController {
constructor(private readonly usersService: UsersService) {}
@Get()
findAll(): User[] {
return this.usersService.findAll();
}
}
四、中间件生态
Nest.js 原生集成 TypeORM / Prisma / Mongoose、Passport(认证)、Bull(队列)、WebSocket、GraphQL:
npm install @nestjs/typeorm typeorm pg
npm install @nestjs/passport passport passport-jwt
相关阅读
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。