인프런 커뮤니티 질문&답변

장태성님의 프로필 이미지
장태성

작성한 질문수

탄탄한 백엔드 NestJS, 기초부터 심화까지

몽고db 연결이 안됩니다.

작성

·

678

0

2022년 10월 9일 기준으로 모든 패키지 설치했습니다.

아래 내용을 봐주시고 어느 부분에서 에러가 나는 건지 알려주시면 감사하겠습니다.

패키지 버전 문제인 건지, 아니면 다른 몽고db 네트워크 설정 문제인 건지

저는 모르겠네요.

pakage.json - 패키지 버전

{
"dependencies": {
    "@nestjs/common": "^9.0.0",
    "@nestjs/config": "^2.2.0",
    "@nestjs/core": "^9.0.0",
    "@nestjs/mongoose": "^9.2.0",
    "@nestjs/platform-express": "^9.0.0",
    "class-transformer": "^0.5.1",
    "class-validator": "^0.13.2",
    "mongoose": "^6.6.5",
    "reflect-metadata": "^0.1.13",
    "rimraf": "^3.0.2",
    "rxjs": "^7.2.0"
  },
  "devDependencies": {
    "@nestjs/cli": "^9.0.0",
    "@nestjs/schematics": "^9.0.0",
    "@nestjs/testing": "^9.0.0",
    "@types/express": "^4.17.13",
    "@types/jest": "28.1.8",
    "@types/node": "^16.0.0",
    "@types/supertest": "^2.0.11",
    "@typescript-eslint/eslint-plugin": "^5.0.0",
    "@typescript-eslint/parser": "^5.0.0",
    "eslint": "^8.0.1",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-prettier": "^4.0.0",
    "jest": "28.1.3",
    "prettier": "^2.3.2",
    "source-map-support": "^0.5.20",
    "supertest": "^6.1.3",
    "ts-jest": "28.0.8",
    "ts-loader": "^9.2.3",
    "ts-node": "^10.0.0",
    "tsconfig-paths": "4.1.0",
    "typescript": "^4.7.4"
  }
}

에러화면 - npm run start:dev

nest-mongoose-unable.png

.env 파일 내용

MONGODB_URI="mongodb+srv://<id>:<pw>@dbtest.0lqasde.mongodb.net/test"
PORT=3000
MODE='dev'

.env 파일 위치 및 app.module.ts 코드 화면

nestjs-module.png

app.module.ts

import { MiddlewareConsumer, Module } from '@nestjs/common';
import { NestModule } from '@nestjs/common/interfaces/modules';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { CatsModule } from './cats/cats.module';
import { LoggerMiddleware } from './common/middlewares/logger.middleware';
import { MongooseModule } from '@nestjs/mongoose';
import * as mongoose from 'mongoose';
import { ConfigModule } from '@nestjs/config';

@Module({
  imports: [
    ConfigModule.forRoot(),
    MongooseModule.forRoot(process.env.MONGODB_URI, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
      useCreateIndex: true,
      useFindAndModify: false,
    }),
    CatsModule,
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule implements NestModule {
  private readonly isDev: boolean = process.env.MODE === 'dev' ? true : false;
  configure(consumer: MiddlewareConsumer) {
    consumer.apply(LoggerMiddleware).forRoutes('*');
    mongoose.set('debug', this.isDev);
  }
}

 

main.ts 파일

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { HttpExceptionFilter } from './common/exceptions/http-exception.filter';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.useGlobalFilters(new HttpExceptionFilter());
  const PORT = process.env.PORT;
  await app.listen(PORT);
}
bootstrap();

 

mongodb - compass 화면

mongo-compass.png

mongodb data access 화면 - admin 권한 부여

mongo-access.png

ip address 접근 권한 화면 - 어느 위치에서도 접근 가능하게 설정

mongo-ip.png

답변 1

2

안녕하세요 data big님.

 

혹시 npm install 하는 과정에서 mongo db 관련하여 버전 경고가 뜨지는 않았었나요?

버전 경고가 만약 떴었다면, 아래의 코드를 입력하여 mongo db의 버전을 바꿔주세요.

npm install mongoose@6.2.2 --save

 

이후에도 해결되지 않으셨다면, 새로운 질문글에 지금 이 질문글의 링크를 복사하여 남겨주세요!
바로 확인하고 답변 드리겠습니다.

감사합니다.

장태성님의 프로필 이미지
장태성

작성한 질문수

질문하기