NestJS 模块化架构实践
NestJS 用模块边界和依赖注入帮助团队管理大型 Node.js 应用。
模块边界
模块应该围绕业务能力组织,而不是简单映射技术分层。一个深模块对外暴露少量稳定接口,把内部复杂度封装起来。
import { Module } from "@nestjs/common";
@Module({
providers: [UsersService, UsersRepository],
controllers: [UsersController],
exports: [UsersService],
})
export class UsersModule {}Provider 生命周期
默认单例 Provider 适合无请求状态的服务。只有在确实依赖请求上下文时才使用 request scope,因为它会增加实例化成本。