// user.module.ts @Module({ imports: [AuthModule], providers: [UserService], }) export class UserModule {} // auth.module.ts @Module({ imports: [UserModule], providers: [AuthService], }) export class AuthModule {}.UserModule 引入了 AuthModule
1. 把通用服务抽到 CoreModule @Module({ providers: [JwtService, ConfigService], exports: [JwtService, ConfigService], }) export class CoreModule {}以后需要这些服务的地方,统一引入 CoreModule,不再模块间互相引用。
user/ user.controller.ts user.service.ts user.module.ts auth/ auth.controller.ts auth.service.ts auth.module.ts我改成这样:
services/ auth.service.ts user.service.ts controllers/ auth.controller.ts user.controller.ts modules/ auth.module.ts user.module.ts边界更清晰、导入更简单,自然就不会出现“互相依赖”的死循环。
export interface UserStore { findUserByEmail(email: string): Promise<User>; }AuthService 依赖的是 UserStore 接口,而不是 UserService 具体实现,这样就避免了双向绑定。
.依赖注入稳定性提升
结论:
架构优化,不只是让代码更干净,还能让性能飞起来。
如果你也在优化 NestJS,不妨看看你的模块导入关系。