Схема не была зарегистрирована для модели «ModuleSchema»

#mongoose #nestjs #mongoose-schema #mongoose-populate #nestjs-mongoose

Вопрос:

Я пытаюсь понять, как зарегистрировать модель в NestJS, потому что всегда получаю сообщение об ошибке::

 Use mongoose.model(name, schema) {"0":"MissingSchemaError: Schema hasn't been registered for model "ModuleSchema".nUse mongoose.model(name, schema)n    at NativeConnection.Connection.model (F:\Code\thorberg\divo-backend\node_modules\mongoose\lib\connection.js:1132:11)n`
 

Моя цель-использовать метод заполнения мангустов, чтобы присоединить ссылочный документ к другой коллекции.

 import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model } from 'mongoose';
import { CreateModuleDto } from './dto/create-module.dto';
import { UpdateModuleDto } from './dto/update-module.dto';
import { Module, ModuleDocument } from './module.model';

@Injectable()
export class ModuleService {
  constructor(@InjectModel(Module.name) private moduleModule: Model<ModuleDocument>) { }


  findAll() {
    return this.moduleModule.find().populate('modules');
  }
}

 

Я старался как таковой, и это сработало. Но не думайте, что это лучшая практика:

  findAll() {
    return this.moduleModule.find().populate('modules', ['name', 'isChecked'], this.moduleModule);
  }
 

Есть ли способ зарегистрировать эту модель где-нибудь в module.module.ts?

 import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { ModuleController } from './module.controller';
import { Module as M, ModuleSchema } from './module.model';
import { ModuleService } from './module.service';


@Module({
  imports: [MongooseModule.forFeature([{ name: M.name, schema: ModuleSchema }])],
  controllers: [ModuleController],
  providers: [ModuleService],
  exports: [ModuleService]
})
export class ModuleModule { }

 

Комментарии:

1. Можете ли вы показать ModuleModule , куда вы звоните MongooseModule.forFeature() ModuleModel ?

2. Я добавил модуль в вопросы выше!