Nest can't resolve dependencies of the movieModel (?). Please make sure that the argument DatabaseConnection at index [0] is available i

Viewed 111

I have trouble with using mongoose in nest

error message is below :

Nest can't resolve dependencies of the movieModel (?). Please make sure that the argument DatabaseConnection at index [0] is available in the MongooseModule context.

Potential solutions:

  • If DatabaseConnection is a provider, is it part of the current MongooseModule?
  • If DatabaseConnection is exported from a separate @Module, is that module imported within MongooseModule?

movies.service.ts

import { Injectable } from '@nestjs/common';
import { CreateMovieDto } from './dto/create-movie.dto';
import { InjectModel } from '@nestjs/mongoose';
import { movie, movieDocument } from './schema/movie.schema';
import { Model } from 'mongoose';

@Injectable()
export class MoviesService {
  constructor(
    @InjectModel(movie.name) private movieModel: Model<movieDocument>,
  ) {}

  async create(CreateMovieDto: CreateMovieDto): Promise<movie> {
    return new this.movieModel(CreateMovieDto).save();
  }

  async getAll(): Promise<movie[]> {
  return this.movieModel.find().exec(); 
  }

app.modules.ts

import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { MoviesModule } from './movies/movies.module';

@Module({
  imports: [
    MoviesModule,
    MongooseModule.forRoot('mongodb://localhost:27017/databasename', {
      connectionName: 'movies',
    }),
  ],
  controllers: [],
  providers: [],
})
export class AppModule {}

movie.module.ts

import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { MoviesController } from './movies.controller';
import { MoviesService } from './movies.service';
import { movieSchema } from './schema/movie.schema';

@Module({
  imports: [
    MongooseModule.forFeature([
      {
        name: 'movie',
        schema: movieSchema,
        collection: 'movies',
      },
    ]),
  ],
  controllers: [MoviesController],
  providers: [MoviesService], //nestjs가 movieservice를 import하고 controller에 inject 한다.
})
export class MoviesModule {}

please help me figure this out

0 Answers
Related