node.js - Nest 无法解析 VendorsService 的依赖关系(?)。请验证 [0] 参数在当前上下文中是否可用

标签 node.js typescript nestjs

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

我不断收到此错误。

Nest 无法解析 VendorsService 的依赖关系(?)。请验证 [0] 参数在当前上下文中是否可用。

这是代码

应用模块

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

Controller

@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 将永远无法将其注入(inject)到您的服务中。

除非你想用 UsersModule 声明它(我猜你是这么做的);在这种情况下,UsersModule 的 exports 中也需要它,以便其他导入 UsersModule 的模块可以看到它。

它是VendorsModule:providers中的usersProviders,

UsersModule:providersexports 中的 usersProviders

关于node.js - Nest 无法解析 VendorsService 的依赖关系(?)。请验证 [0] 参数在当前上下文中是否可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50777032/

相关文章:

javascript - 删除已获取的消息时出现问题

javascript - ionic 2 : Object 'Date' doesn't work on Ios

node.js - 防止在监视模式下运行时对某些文件夹进行更改后自动重新启动服务器

javascript - Express 中的动态路由, "Cannot read property ' concat' of undefined”错误

node.js - 如何从 lowdb 进行查询以返回给定范围内的结果?

node.js - MongoDB 聚合总和增长

javascript - 如何通过es6类构造数组

typescript - Express-validator 验证导致 typescript 错误 : request. query Object is possibly 'undefined'

node.js - 如何在 nestjs 框架中使用 nunjucks 模板?