• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 Node js & mongoDB_connection

Node js & mongoDB_connection

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #109117

    백형준
    참가자
    안녕하세요, 먼저 메일로 연락 드렸었는데 답장 해주셔서 감사합니다.
    문제가 해결되지 않아서 개인 프로젝트를 만든 후,
     MONGO DB를 연결을 하려고 하는데 연결이 되지 않아서 번거로우시겠지만 다시 여쭤봅니다.
    
    Nest.js와 mongo DB 연결이 되지 않습니다..
    Mongo의 경우 사이트에 url 그대로 가져온 후 password를 올바르게 코드 작성하였습니다. (비밀번호 변경까지 하면서 copy해서 제대로 복사함)
    그 후 app.modules.ts 파일에 mongo import도 완료하였습니다.
    터미널에서 yarn run start:dev를 실행하면 다음와 같이 mongo db연결 실패가 나옵니다.
    “””
    구글링, 티스토리, stack overflow, gpt등 다양한 방법을 시도했지만.. 해결하지 못 하였습니다.
    혹시 다음과 같은 에러 해결 방법을 아시는지 여쭤보고 싶습니다.
    
    
    [오후 8:31:15] Starting compilation in watch mode...
    
    
    [오후 8:31:19] Found 0 errors. Watching for file changes.
    
    
    [Nest] 38072  - 2024. 01. 05. 오후 8:31:22     LOG [NestFactory] Starting Nest application...
    [Nest] 38072  - 2024. 01. 05. 오후 8:31:22   ERROR [MongooseModule] Unable to connect to the database. Retrying (1)...
    [Nest] 38072  - 2024. 01. 05. 오후 8:31:22     LOG [InstanceLoader] MongooseModule dependencies initialized +20ms
    [Nest] 38072  - 2024. 01. 05. 오후 8:31:22   ERROR [ExceptionHandler] Nest can't resolve dependencies of the MongooseCoreModule (MongooseConnectionName, ?). Please make sure that the argument ModuleRef at index [1] is available in the MongooseCoreModule context.
    
    
    Potential solutions:
    - Is MongooseCoreModule a valid NestJS module?
    - If ModuleRef is a provider, is it part of the current MongooseCoreModule?
    - If ModuleRef is exported from a separate @Module, is that module imported within MongooseCoreModule?
      @Module({
        imports: [ /* the Module containing ModuleRef */ ]
      })
    
    
    Error: Nest can't resolve dependencies of the MongooseCoreModule (MongooseConnectionName, ?). Please make sure that the argument ModuleRef at index [1] is available in the MongooseCoreModule context.
    
    
    Potential solutions:
    - Is MongooseCoreModule a valid NestJS module?
    - If ModuleRef is a provider, is it part of the current MongooseCoreModule?
    - If ModuleRef is exported from a separate @Module, is that module imported within MongooseCoreModule?
    njector\injector.js:254:19)
        at Injector.resolveComponentInstance (C:\Users\vivid\Desktop\리빗그린\백엔드\nestjs-board-app\node_modules\@nestjs\core\injector\injector.js:207:33)
        at resolveParam (C:\Users\vivid\Desktop\리빗그린\백엔드\nestjs-board-app\node_modules\@nestjs\core\injector\injector.js:128:38)
        at async Promise.all (index 1)
        at Injector.resolveConstructorParams (C:\Users\vivid\Desktop\리빗그린\백엔드\nestjs-board-app\node_modules\@nestjs\core\injector\injector.js:143:27)
        at Injector.loadInstance (C:\Users\vivid\Desktop\리빗그린\백엔드\nestjs-board-app\node_modules\@nestjs\core\injector\injector.js:70:13)
        at Injector.loadProvider (C:\Users\vivid\Desktop\리빗그린\백엔드\nestjs-board-app\node_modules\@nestjs\core\injector\injector.js:97:9)
        at C:\Users\vivid\Desktop\리빗그린\백엔드\nestjs-board-app\node_modules\@nestjs\core\injector\instance-loader.js:56:13
        at async Promise.all (index 0)
        at InstanceLoader.createInstancesOfProviders (C:\Users\vivid\Desktop\리빗그린\백엔드\nestjs-board-app\node_modules\@nestjs\core\injector\instance-loader.js:55:9)
    “””
    
    
    
    
    하단에 코드
    파일 생성 후
    1.     Env 파일 만들고 mongo_url 기입
    2.     App.module에 mongo 기입
    .env 파일
    MONGO_URI=mongodb+srv://livewith:<password>@nyam.aiwdgsw.mongodb.net/
    Ex) MONGO_URI=mongodb+srv://livewith:11111111@nyam.aiwdgsw.mongodb.net/
    Ex와 같은 형태로 데이터 기입
    
    
    Package.json
    {
      "name": "nestjs-board-app",
      "version": "0.0.1",
      "description": "",
      "author": "",
      "private": true,
      "license": "UNLICENSED",
      "scripts": {
        "build": "nest build",
        "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
        "start": "nest start",
        "start:dev": "nest start --watch",
        "start:debug": "nest start --debug --watch",
        "start:prod": "node dist/main",
        "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
        "test": "jest",
        "test:watch": "jest --watch",
        "test:cov": "jest --coverage",
        "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
        "test:e2e": "jest --config ./test/jest-e2e.json"
      },
      "dependencies": {
        "@nestjs/common": "^10.0.0",
        "@nestjs/core": "^10.0.0",
        "@nestjs/platform-express": "^10.0.0",
        "mongoose": "^8.0.3",
        "reflect-metadata": "^0.1.13",
        "rxjs": "^7.8.1"
      },
      "devDependencies": {
        "@nestjs/cli": "^10.0.0",
        "@nestjs/schematics": "^10.0.0",
        "@nestjs/testing": "^10.0.0",
        "@types/express": "^4.17.17",
        "@types/jest": "^29.5.2",
        "@types/node": "^20.3.1",
        "@types/supertest": "^2.0.12",
        "@typescript-eslint/eslint-plugin": "^6.0.0",
        "@typescript-eslint/parser": "^6.0.0",
        "eslint": "^8.42.0",
        "eslint-config-prettier": "^9.0.0",
        "eslint-plugin-prettier": "^5.0.0",
        "jest": "^29.5.0",
        "prettier": "^3.0.0",
        "source-map-support": "^0.5.21",
        "supertest": "^6.3.3",
        "ts-jest": "^29.1.0",
        "ts-loader": "^9.4.3",
        "ts-node": "^10.9.1",
        "tsconfig-paths": "^4.2.0",
        "typescript": "^5.1.3"
      },
      "jest": {
        "moduleFileExtensions": [
          "js",
          "json",
          "ts"
        ],
        "rootDir": "src",
        "testRegex": ".*\\.spec\\.ts$",
        "transform": {
          "^.+\\.(t|j)s$": "ts-jest"
        },
        "collectCoverageFrom": [
          "**/*.(t|j)s"
        ],
        "coverageDirectory": "../coverage",
        "testEnvironment": "node"
      }
    }
    
    
    
    
    Main.ts
    import { NestFactory } from '@nestjs/core';
    import { AppModule } from './app.module';
    
    
    async function bootstrap() {
      const app = await NestFactory.create(AppModule);
      await app.listen(3000);
    }
    bootstrap();
    
    
    
    
    app.module.ts
    import { Module } from '@nestjs/common';
    import { AppController } from './app.controller';
    import { AppService } from './app.service';
    import { MongooseModule } from '@nestjs/mongoose';
    
    
    @Module({
      imports: [MongooseModule.forRoot(process.env.MONGO_URI)],
      controllers: [AppController],
      providers: [AppService],
    })
    export class AppModule {}
    
    
    
    
    app.controller.ts
    import { Controller, Get } from '@nestjs/common';
    import { AppService } from './app.service';
    
    
    @Controller()
    export class AppController {
      constructor(private readonly appService: AppService) {}
    
    
      @Get()
      getHello(): string {
        return this.appService.getHello();
      }
    }
    
    
     
    #109149

    codingapple
    키 마스터
    nestjs-board-app 폴더오픈하고 실행하는지 확인해봅시다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠