无法解析 OrderService 的依赖关系。猫鼬,NestJS

时间:2021-03-11 22:45:28

标签: typescript mongoose nestjs

我对 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 {}

1 个答案:

答案 0 :(得分:1)

错误很清楚地说明了这一点。 OrderModule 无权访问 BookModel (MongooseModule.forFeature([{name: 'Book', schema: BookSchema}]))。您可以从 MongooseModule 导出 BookModule 并将 BookModule 添加到imports 数组 OrderModule 以快速解决此问题。