일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- TypeORMconfig.ts
- ormconfig.ts
- Live server
- 자바스크립트
- javascript
- NEST좌석
- joi vs classvalidation
- CRUD
- 로그파일저장
- 내일배움캠프
- get
- 좌석생성
- 테스트결제
- Class Validation
- cachememory
- 카카오페이테스트결제
- 네스트로거
- TYPESCRIPT좌석생성
- nestwinston
- 캐시메모리저장후DB저장
- devcamp
- 포트원
- TypeORMconfig
- NEST좌석생성
- Nest
- Nest.js
- 좌석만들기
- 캐시메모리DB저장
- Til
- 좌석내가격
- Today
- Total
배씨의 개발일지
VScode로 mongoDB연결 본문
문제
VScode로 mongoDB를 연결 후 데이터를 보내는 中 에러 발생
오류가 나기 전 과정
- mongoDB 설치 (https://www.mongodb.com/try/download/community)
- 환경 변수 추가
- CMD(명령 프롬프트)들어가서 mongod --install --serviceName MongoDB --serviceDisplayName MongoDB --dbpath C:\data\db --logpath C:\data\db\log\mongoservice.log --logappend 및 mongo 입력
- 명령어 입력 되지 않음
- 찾아보니 최신 버전은 vscode와 연동 시 mongosh가 필요하다는 걸 찾음
- mongosh 설치 후 다시 진행
- 또 똑같은 에러 발생
- 삭제 후 버전을 낮춰서 재설치
- Studio 3T 다운 (https://robomongo.org/download)
- VScode에서 mongoose 설치 (npm i mongoose)
- 코드내에서 mongoDB로 데이터 보내기 (=실패)
첫 번째 에러 코드
const mongoose = require("mongoose");
const connect = () => {
mongoose
.connect("mongodb://localhost:3000/spa_mall")
.catch((err) => console.log(err));
};
mongoose.connection.on("error", (err) => {
console.error("몽고디비 연결 에러", err);
});
module.exports = connect;
DB를 연결 후 데이터를 보내는 과정에서 Thunder client 확인하던 중 타임아웃 에러가 발생했다.
이 후 방법을 찾아보다가
https://mongoosejs.com/docs/connections.html
Mongoose v7.2.4: Connecting to MongoDB
You can connect to MongoDB with the mongoose.connect() method. mongoose.connect('mongodb://127.0.0.1:27017/myapp'); This is the minimum needed to connect the myapp database running locally on the default port (27017). If connecting fails on your machine, t
mongoosejs.com
몽구스 공식 문서에서 본
mongoose.connect('mongodb://127.0.0.1:27017/myapp');
위 방법으로 mongoDB에 연결이 가능하다는 걸 알게되었고
const mongoose = require("mongoose");
const connect = () => {
mongoose
.connect("mongodb://127.0.0.1:27017/spa_mall")
.then(() => {
console.log("몽고디비 연결 성공");
})
.catch((err) => console.log(err));
};
mongoose.connection.on("error", (err) => {
console.error("몽고디비 연결 에러", err);
});
module.exports = connect;
위와 같이 코드를 변경 + DB에 연결 확인을 위해 .then =>console.log 작성
Thunder Client를 이용, JSON형식으로 데이터 보내기.
위에서 몽고DB로 연결해주는 주소를 변경해주고 그 주소 그대로 데이터를 보내니 데이터가 보내지지 않음.
Connection was forcibly closed by a peer.
기존 연결이 무언가 잘못되었음을 깨달았고
한 동기분에게 팁을 받아서
localhost:27017/~를 localhost:3000/~로 변경하니 제대로 데이터가 보내지는 걸 확인.
결론
DB연결을 해 줄때만 127.0.0.1:27017 ( mongoDB의 기본 포트)로 연결해주고
그 뒤에 내가 설정한 포트로 데이터를 보내주면 된다.
이 과정에서 내가 작성한 코드(이상한 데이터 값 입력, 오타)가 문제인가 싶어서 한참을 코드를 찾아봤는데
코드상의 문제는 없었고 도중에 404 NOT FOUND도 뜨길래 뭔가 HTML을 가져오는데 문제가 있구나 싶어서 찾아보았고
동기분에게 힌트를 받아서 결과적으로는 성공하게 되었다.
이 문제를 해결하는데 정말 많은 시간을 쏟아부었다....
다른 분들은 이런 에러를 안 만났으면 하는 바람 + 또 다시 이런 에러를 겪고 싶지 않은 마음에
이 글을 작성했다.
이 에러를 해결하기까지 도움을 주신 많은 분들께 감사인사를 드립니다...
감사합니다.

'TIL' 카테고리의 다른 글
MVC 패턴 (0) | 2023.08.17 |
---|---|
3 tier architecture (0) | 2023.07.24 |
오늘 알게 된 것 (Import, Export) (0) | 2023.05.31 |
TIL 4일 차 (0) | 2023.05.19 |
TIL 3일 차 (0) | 2023.05.19 |