Nest 中 TypeORM 的正確用法:如何解決 BookEntityRepository 在 AppModule 中不可用的錯誤?

Nest 中 TypeORM 的正確用法:如何解決 BookEntityRepository 在 AppModule 中不可用的錯誤?

nest 中 typeorm 的正確用法

為了利用 nest 中強大的 typeorm orm,正確集成都至關(guān)重要。本文將探討 typeorm 的使用最佳實踐,并通過解決常見的運行時錯誤來提供一個問題的答案。

問題描述

一位 nest 新手在運行時遇到了一個錯誤,指出以下代碼中的 bookentityrepository 未在 appmodule 上下文中可用:

@Module({     imports: [         TypeOrmModule.forRoot({ ... }),         BookModule,     ],     controllers: [BookController],     providers: [BookService], })

答案

根據(jù)給出的錯誤,該解決方法是刪除 appmodule 中的 controllers(bookcontroller)和 providers(bookservice)數(shù)組。這樣可以確保模塊按預(yù)期解析 bookentityrepository 的依賴項。

最佳實踐

除了解決上述問題外,在 nest 中使用 typeorm 時還應(yīng)注意以下最佳實踐:

  • 將 typeormmodule.forroot() 僅置于根模塊(appmodule)中。
  • 在特性模塊中使用 typeormmodule.forfeature() 導(dǎo)入實體。
  • 依賴注入實體存儲庫,使用 @injectrepository 裝飾器(如 bookservice.ts 中所示)。
  • 避免在服務(wù)中直接操作 entitymanager 或 repository,因為它會破壞依賴注入。

通過遵循這些最佳實踐,你可以確保 typeorm 在 nest 應(yīng)用程序中得到正確且有效的使用。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊11 分享