Nest 다른 모듈에서 Mongoose 사용 방법

2022. 4. 25. 18:45Nest.js

Mongoose로 구성된 Model을 불러와 findOne 같은 함수를 사용하려고 할 때 

에러가 발생한다.

 

에러 이유는 사용하려는 Module에서 MongooseModule을  imports에  넣어 주지 않아 생기는 오류이다.

 

 

해결 방법

 

1. MongooseModule.forFeature()를 형식에 맞게 imports에 넣어준다.

2. 사용시 @InjectModel()를 constructor에 넣어준다.

 

module

//moduel
import { User, UserSchema } from './../model/users.model';
import { SignupRepository } from './signup.repository';
import { Module } from '@nestjs/common';
import { SignupController } from './signup.controller';
import { SignupService } from './signup.service';
import { MongooseModule } from '@nestjs/mongoose';

@Module({
  imports: [
    MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
  ],
  controllers: [SignupController],
  providers: [SignupService, SignupRepository],
})
export class SignupModule {}

 

 

model을 사용하는 service나 reposipory

//service나 reposipory

import { User } from 'src/model/users.model';
import { InjectModel } from '@nestjs/mongoose';
@Injectable()
export class SignupRepository {
  constructor(
    @InjectModel(User.name) private readonly userModel: Model<User>,
  ) {}

 

728x90
반응형