簡體   English   中英

如何修復 NestJS @InjectModel() 依賴錯誤?

[英]How to fix NestJS @InjectModel() dependency error?

記住Link.scheme.ts

import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document, Types } from 'mongoose';
import { User } from 'src/users/schemas/users.schema';

export type RememberLinkDocument = RememberLink & Document;

@Schema({versionKey: false, timestamps: true})
export class RememberLink {
    @Prop({ type: String, required: true })
    code: string;

    @Prop({ type: Types.ObjectId, ref: User.name, required: true })
    user: User;
}

export const RememberLinkSchema = SchemaFactory.createForClass(RememberLink);

記住密碼.module.ts

import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { RememberPasswordController } from './remember-password.controller';
import { RememberPasswordService } from './remember-password.service';
import { RememberLink, RememberLinkSchema } from './schemas/rememberLink.schema';

@Module({
    imports: [
        MongooseModule.forFeature([{
            name: RememberLink.name,
            schema: RememberLinkSchema
        }])
    ],
    controllers: [RememberPasswordController],
    providers: [RememberPasswordService],
    exports: [RememberPasswordService]
})
export class RememberPasswordModule {}

記住密碼.service.ts

import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model } from 'mongoose';
import { UserDto } from 'src/users/dto/user.dto';
import { User } from 'src/users/schemas/users.schema';
import { RememberLinkDto } from './dto/rememberLink.dto';
import { RememberLink, RememberLinkDocument } from './schemas/rememberLink.schema';

@Injectable()
export class RememberPasswordService {

    constructor( @InjectModel(RememberLink.name) private readonly rememberLinkModel: Model<RememberLinkDocument> ) {}

    async getUserByRememberCode(code: string): Promise<UserDto> {
        return await this.rememberLinkModel.findOne({code}).populate(User.name).lean();
    }
}

錯誤:

Nest 無法解析 RememberPasswordService (?) 的依賴關系。 請確保索引 [0] 處的參數 RememberLinkModel 在 RememberPasswordService 上下文中可用。

固定的。 它是在另一個模塊中導入“RememberPasswordService”而不是“RememberPasswordModule”

我要做的就是導出 MongooseModule,它只是依賴注入知道應用程序中的某處會有 model 的單獨模塊

@Module({
    imports: [
        MongooseModule.forFeature([{
            name: RememberLink.name,
            schema: RememberLinkSchema
        }])
    ],
    controllers: [RememberPasswordController],
    providers: [RememberPasswordService],
    exports: [MongooseModule,RememberPasswordService] // <-- MongooseModule added here
})
export class RememberPasswordModule {}

暫無
暫無

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

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