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)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END