繁体   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