1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NestJS7系から10系へのアップグレードではまった話

Posted at

NestJS7系から10系にアップグレードする際にサービスのDIではまったので備忘。

サービスのDIでトークンが使用できるがその使い方が7系と10系で変わっていた。

7系で利用されていた例

@Injectable()
export class SampleService {
  @Inject('MockService')
  private readonly mockService: MockService;
}

10系では上記のような例は利用できず以下のエラーが発生していた。

Error: Nest can't resolve dependencies of the MockService. Please make sure that the "mockService" property is available in the current context.

トークンを指定するためにはドキュメントにあるようにモジュールでトークンにクラスを割り当てる必要がある。

@Module({
  providers: [
    {
      provide: MockService,
      useClass: MockServiceImpl,
    },
  ],
})

なんか動くからと実装してると急に動かなくなるよという教訓。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?