• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

몽고db 연결이 안됩니다.

22.10.09 18:08 작성 조회수 536

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

김건탁님의 프로필

김건탁

2022.10.11

안녕하세요 data big님.

 

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

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

npm install mongoose@6.2.2 --save

 

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

감사합니다.