2 글 보임 - 1 에서 2 까지 (총 2 중에서)
-
글쓴이글
-
2024년 1월 5일 22:01 #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();
}
}
-
글쓴이글
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
- 답변은 로그인 후 가능합니다.