Nest.js 入门指南:模块化架构、依赖注入与 TypeScript 企业级后端

Nest.js 是 Node.js 的企业级框架,受 Angular 启发。本文详解模块(Module)、控制器(Controller)、服务(Service)、依赖注入(DI)、管道(Pipe)、守卫(Guard)与拦截器(Interceptor)核心概念。

Nest.js 是 Node.js 生态中最具"框架感"的后端框架,受 Angular 启发,原生支持 TypeScript,提供模块化架构、依赖注入、装饰器路由等企业级特性。


一、核心概念

概念类比职责
ModuleAngular Module组织相关组件的容器
ControllerAngular Component处理 HTTP 请求/响应
ServiceAngular Service业务逻辑、数据访问
ProviderDI 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」更多文章