У меня проблема с Nest Js и mon goose, я пытаюсь создать начальное значение для своей базы данных, и главная проблема, с которой я сталкиваюсь - я не могу импортировать сервис из моего модуля в другой модуль .
И это постоянно дает мне ошибку:
Nest не может разрешить зависимости CategoryModel (?). Пожалуйста, убедитесь, что аргумент с индексом [0] доступен в контексте MongooseModule.
главное, что я пытаюсь сделать, это создать начальное число для моих категорий.
Вот мой модуль категории:
import { Module } from '@nestjs/common';
import { CategoryController } from './category.controller';
import { CategoryService } from './category.service';
import { MongooseModule } from '@nestjs/mongoose';
import { CategorySchema } from 'src/models/category.schema';
@Module({
imports: [MongooseModule.forFeature([{ name: 'Category', schema: CategorySchema }])],
controllers: [CategoryController],
providers: [CategoryService]
})
export class CategoryModule {}
Служба моей категории:
import { Model } from 'mongoose';
import { Injectable, Inject } from '@nestjs/common';
import { CategoryInterface } from '../interfaces/category.interface';
import { InjectModel } from '@nestjs/mongoose';
@Injectable()
export class CategoryService {
constructor(@InjectModel('Category') private categoryModel: Model<CategoryInterface>) {}
async create(category){
const createdQuestion = new this.categoryModel(category);
return createdQuestion.save();
}
async getMainCategories() {
return this.categoryModel.find( { parent: null } );
}
}
Контроллер моей категории:
import { Controller, Post, Get, Body, HttpCode } from '@nestjs/common';
import { CategoryService } from './category.service';
@Controller('category')
export class CategoryController {
constructor(private categoryService: CategoryService) { }
@Post()
@HttpCode(204)
async createCategory(@Body() category) {
console.log('evo je kategorija ', category);
const data = await this.categoryService.create(category);
}
@Get('/main')
async getAllCategories() {
const data = await this.categoryService.getMainCategories();
return data;
}
}
Модуль My Seeder, где у меня есть провайдер для этой исходной базы данных:
import { Module } from '@nestjs/common';
import { Seeder } from './seeder';
@Module({
providers: [Seeder],
})
export class SeederModule {}
и мой seeder.ts
import { Injectable } from '@nestjs/common';
import { CategoryService } from 'src/category/category.service';
@Injectable()
export class Seeder {
constructor(private categoryService: CategoryService) { }
async seed() {
}
async categories() {
// const data = await this.categoryService.createMultiple(categories);
}
}
Мой App.module
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { CategoryModule } from './category/category.module';
import { QuizModule } from './quiz/quiz.module';
import { ConfigModule } from '@nestjs/config';
import config from './config/config';
@Module({
imports: [
MongooseModule.forRoot('mongodb://localhost:27017'),
ConfigModule.forRoot({ load: [config], isGlobal: true }),
CategoryModule,
QuizModule
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
Категория Модель:
import * as mongoose from 'mongoose';
export const CategorySchema = new mongoose.Schema({
name: { type:String, required:true, unique: true },
slug: { type:String, required:true, unique: true },
});
And for some reason it is not working, even If I import whole
GitHub Репозиторий проекта : https://github.com/HunterJS-bit/react-quiz-app
CategoryModule или CategoryService в Seeder.module ??
Примечание. Чтобы воспроизвести ошибку, попробуйте запустить npm run seed
с сервера / пакета. json
Спасибо за помощь:)