我对 NestJS 完全陌生,并且遇到了一个小问题。在为我的商店创建订单服务时,我想从我的数据库中访问我的所有书籍 - 我正在使用 mongoose 来管理数据库。但是在我的 orderService 中创建 bookModel 时,为了访问它们,Nest 返回了该错误。
Error: Nest can't resolve dependencies of the OrderService (OrderModel, ?). Please make sure that the argument BookModel at index [1] is available in the OrderModule context.
Potential solutions:
- If BookModel is a provider, is it part of the current OrderModule?
- If BookModel is exported from a separate @Module, is that module imported within OrderModule?
@Module({
imports: [ /* the Module containing BookModel */ ]
})
这是我的 order.service.ts:
@Injectable()
export class OrderService {
constructor(@InjectModel('Order') private orderModel:Model<Document & Order>,@InjectModel('Book') public bookModel:Model<Document & Book>)
{
}
async getOrders() {
///some code
}
async addOrder(@Body() createOrderDto: CreateOrderDto){
///some code
}
}
我的 order.module.ts:
@Module({
imports: [MongooseModule.forFeature([{name:'Order',schema: OrderSchema }])],
providers: [OrderService],
controllers: [OrderController]
})
export class OrderModule {}
还有我的 book.module.ts:
@Module({
imports: [MongooseModule.forFeature([{name:'Book',schema: BookSchema }])],
controllers: [BookController],
providers: [BookService],
exports:[BookService]
})
export class BookModule {}
答案 0 :(得分:1)
错误很清楚地说明了这一点。 OrderModule
无权访问 BookModel
(MongooseModule.forFeature([{name: 'Book', schema: BookSchema}])
)。您可以从 MongooseModule
导出 BookModule
并将 BookModule
添加到imports
数组 OrderModule
以快速解决此问题。