Как внедрить модель в root модуль приложения в приложении nest js - PullRequest
0 голосов
/ 20 апреля 2020

Здравствуйте, я получил ошибку в своем гнезде приложения вот скриншот ошибки:

enter image description here

Вот код модуля приложения:

@Module({
  imports: [AppModule,CrudModule,MongooseModule.forRoot("mongodb://localhost:27017/mydb"),AuthModule,UsersModule,MulterModule.register({
    dest:'./uploads',
  })],
  controllers: [AppController],
  providers: [AppService,AuthService,UsersService,JwtService],
})
export class AppModule {}

Вот код модели:

export interface credentials extends mongoose.Document{
    email:String,
    password:String
}

Вот код UsersServices:

import { Injectable } from '@nestjs/common';
//import {logindto} from 'src/crud/DTO/login.dto'
import {credentials, studentmodel} from 'src/crud/crud.model'
import {model,Model} from 'mongoose'
import {InjectModel} from '@nestjs/mongoose'
//export type User = any;

@Injectable()
export class UsersService {
 constructor(@InjectModel('credentials')private readonly credentials:Model<credentials> ) {}
  //constructor(@InjectModel('student')private readonly credentials:Model<studentmodel> ){}

  async findByEmail(username: string): Promise<any> {
    return await this.credentials.findOne({
        where: {
            email: username,
        }
    });
  }
}

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

В дополнение к сказанному Казновой c вам необходимо удалить свой AppModule из массива imports. Кроме того, похоже, что у вас уже есть UsersModule, вы должны удалить всех провайдеров, которые UsersModule предоставляет из массива AppModule providers. В противном случае Nest снова попытается создать экземпляры этих провайдеров.

0 голосов
/ 20 апреля 2020

попробуйте добавить MongooseModule.forFeature([{ name: 'credentials', schema: credentials }]) в раздел импорта AppModule.

Архитектурные службы пользователя и аутентификация должны быть заключены в свои собственные модули.

...