【问题标题】:Nest can't resolve dependencies of the ClientsService (?)Nest 无法解析 ClientsService 的依赖项(?)
【发布时间】:2023-01-05 23:37:07
【问题描述】:

所以我有一个在 nest js 中构建的示例应用程序,我在 npm start 上遇到了错误

Nest 无法解析 ClientsService (?) 的依赖关系。请确保索引 [0] 处的参数 ClientModel 在 ClientsModule 上下文中可用。

所以我已经检查过了,但似乎无法找到错误发生的原因

我的客户服务.ts

import { Injectable } from '@nestjs/common';
import { Model } from 'mongoose';
import { InjectModel } from '@nestjs/mongoose';
import { Client } from 'clients/interfaces/client.interface';
import { CreateClientDTO } from 'clients/dto/create-client.dto';


@Injectable()
export class ClientsService {
    constructor(@InjectModel('Client') private readonly clientModel: Model<Client>) { }

    // Get all clients
    async getClients(): Promise<Client[]> {
        const clients = await this.clientModel.find().exec();
        return clients
    }

    //Get single client
    async getClient(clientID: Promise<Client>) {
        const client = await this.clientModel
            .findById(clientID)
            .exec();
        return client;
    }

    //Add client
    async addClient(createClientDTO: CreateClientDTO): Promise<Client> {
        const newClient = await new this.clientModel(createClientDTO);
        return newClient.save()
    }
}

和我的 client.module.ts

import { Module } from '@nestjs/common';
import { ClientsService } from './clients.service';
import { ClientsController } from './clients.controller';
import { MongooseModule } from '@nestjs/mongoose';
import { ClientSchema } from 'clients/schemas/clients.schema';

@Module({
  imports: [
    MongooseModule.forFeature([{name: 'Clients', schema: ClientSchema}])
  ],
  providers: [ClientsService],
  controllers: [ClientsController]
})
export class ClientsModule {}

【问题讨论】:

    标签: javascript node.js nest


    【解决方案1】:

    InjectModel 装饰器期望采用您的实体的模式名称。

    所以你在ClientsModule中告诉猫鼬模式名称是Clients,但在ClientsService中你尝试用模式名称Client注入模型,这与模块中的契约不同。

    MongooseModule.forFeature([{name: 'Clients', schema: ClientSchema}])
    
    constructor(@InjectModel('Client') private readonly clientModel: Model<Client>) { }
    

    【讨论】:

      猜你喜欢
      • 2023-04-01
      • 2020-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 2021-11-24
      • 2019-01-21
      • 1970-01-01
      相关资源
      最近更新 更多