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
相关阅读
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。
「frontend」更多文章
Vue 性能优化指南:虚拟列表、懒加载、渲染优化与 Core Web Vitals
Vue 3 应用性能优化完整策略:虚拟滚动(vue-virtual-scroller)、组件懒加载与异步组件、KeepAlive 缓存、Suspense 异步优化、v-memo 渲染记忆化、响应式性能(shallowRef/toRaw)、Bundle 分析与代码分割、渲染函数优化、以及 Core Web Vitals(LCP/INP/CLS)调优。
Nuxt.js 完全指南:Vue 全栈框架的 SSR、SSG、API 路由与部署实践
Nuxt.js 3 深度实践:文件系统路由、SSR/SSG/ISR 渲染模式、API 路由(Server Routes)、useFetch/useAsyncData 数据获取、中间件与插件、SEO 与 Meta 管理、Nitro 服务端引擎、自动导入、部署到 Vercel/Netlify/Node.js。
Vue 测试深度指南:Vitest + Vue Test Utils + Playwright E2E 与 CI 集成
Vue 3 应用从单元测试到 E2E 的完整测试策略:Vitest + Vue Test Utils 组件测试(mount/emits/slots/async)、Pinia Store Mocking、MSW API 拦截、Playwright 端到端测试、Cypress 组件测试、覆盖率标准与 GitHub Actions CI 集成。