软件开发札记 · 持续修订

菜单
Node.js

NestJS 模块化架构实践

用 Module、Provider 与依赖注入组织可测试、可演进的 Node.js 后端。

2026年7月15日1 分钟阅读131

NestJS 模块化架构实践

NestJS 用模块边界和依赖注入帮助团队管理大型 Node.js 应用。

模块边界

模块应该围绕业务能力组织,而不是简单映射技术分层。一个深模块对外暴露少量稳定接口,把内部复杂度封装起来。

users.module.ts
import { Module } from "@nestjs/common";
 
@Module({
  providers: [UsersService, UsersRepository],
  controllers: [UsersController],
  exports: [UsersService],
})
export class UsersModule {}

Provider 生命周期

默认单例 Provider 适合无请求状态的服务。只有在确实依赖请求上下文时才使用 request scope,因为它会增加实例化成本。