Nest 无法解析 的依赖关系。请确保参数..在索引 [0] 中可用



我有:

import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/sequelize';
import { Conversation } from './conversation.model'
import { FindConversationsDto } from '../dto/conversations.find'
@Injectable()
export class ConversationsService {
constructor(
@InjectModel(Conversation)
private conversationModel: typeof Conversation
) { }
async findConversations(queryParams: FindConversationsDto): Promise<Conversation[]> {
return new Promise((resolve) => [])
// return await this.conversationModel.findAll();

}
}

我得到了一个奇怪的错误:

Nest can't resolve dependencies of the ConversationsService (?). Please make sure that the argument ConversationRepository at index [0] is available in the ConversationsModule context.
Potential solutions:
- If ConversationRepository is a provider, is it part of the current ConversationsModule?
- If ConversationRepository is exported from a separate @Module, is that module imported within ConversationsModule?
@Module({
imports: [ /* the Module containing ConversationRepository */ ]
})

ConversationModule为:

import { Module } from '@nestjs/common';
import { ConversationsController } from './conversations.controller';
import { ConversationsService } from './conversations.service';
@Module({
controllers: [ConversationsController],
providers: [ConversationsService]
})
export class ConversationsModule {}

不确定ConversationRepository指的是什么。

您需要将SequelizeModule.forFeature()添加到ConversationModuleimports数组中,以告诉Nest在该模块的上下文中,我可以访问ConversationRepository。该术语借用自TypeORM,与TypeO一样,您有实体和存储库,但与Sequelize不同,您有模型和表,但总体思路相同。你的ConverstationModule应该可能看起来像这样:

@Module({
imports: [SequelizeModule.forFeature([Conversation])],
providers: [ConversationService],
controllers: [ConversationController]
})
export class ConversationModule {}

最新更新