簡體   English   中英

Nest無法解析VendorsService(?)的依賴關系。 請驗證[0]參數在當前上下文中是否可用

[英]Nest can't resolve dependencies of the VendorsService (?). Please verify whether [0] argument is available in thecurrent context

我也是嵌套js和typescript的新手。 提前致謝。

我不斷收到此錯誤。

Nest無法解析VendorsService(?)的依賴關系。 請驗證[0]參數在當前上下文中是否可用。

這是代碼

應用模塊

@Module({
  imports: [ UsersModule, VendorsModule],
})
export class ApplicationModule {}

控制者

@Controller()
export class VendorsController {
    constructor(private readonly vendorService: VendorsService){}
@Post()
async create(@Body() createVendorDTO: CreateVendorDTO){
    this.vendorService.create(createVendorDTO);
}

@Get()
async findAll(): Promise<Vendor[]>{
    return this.vendorService.findAll();
}
}

服務

@Injectable()
export class VendorsService {

    constructor(@Inject('VendorModelToken') private readonly vendorModel: Model<Vendor>) {}

    async create(createVendorDTO: CreateVendorDTO): Promise<Vendor>{
        const createdVendor = new this.vendorModel(createVendorDTO);
        return await createdVendor.save();
    }
    async findAll(): Promise<Vendor[]>{
        return await this.vendorModel.find().exec();
    }
}

提供者

export const usersProviders = [
  {
    provide: 'VendorModelToken',
    useFactory: (connection: Connection) => connection.model('Vendor', VendorSchema),
    inject: ['DbConnectionToken'],
  },
];

模組

@Module({
  providers: [VendorsService],
  controllers: [VendorsController],
})
export class VendorsModule {}

VendorsModule會在其providers聲明您的提供者(usersProviders),否則Nestjs將永遠無法將其注入到您的服務中。

除非您想使用UsersModule聲明它(我想您已經聲明過); 在這種情況下,UsersModule在其exports也需要它,因此其他導入UsersModule的模塊可以看到它。

這是不是VendorsModule :usersProviders的providers

UsersModuleprovidersexports usersProviders

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM