在 Angular 中,外層的 Provider 會覆蓋掉 Sub Module 的 Provider
ex: https://stackblitz.com/edit/angular-qrc8dn
會顯示 InnerModule: AppModule
但在 NestJS 中,外層的 Provider 卻無法會覆蓋掉 Sub Module 的 Provider
ex:
@Module({
providers: [{ provide: 'TOKEN', useValue: 'InnerModule' }],
})
export class InnerModule {
constructor(@Inject('TOKEN') test: string) {
console.log('InnerModule:', test);
}
}
@Module({
imports: [InnerModule],
providers: [
{
provide: 'TOKEN',
useValue: 'AppModule',
},
],
})
export class AppModule {}
將會顯示 InnerModule: InnerModule
在 Angular 中,可以讓使用模組的人,再不改動程式碼的狀況下,彈性的設定一些內容,但在 Nest 中卻無法這樣做,想請問 NestJS 這樣的架構有什麼樣的優勢?