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을 가져오는데 문제가 있구나 싶어서 찾아보았고
동기분에게 힌트를 받아서 결과적으로는 성공하게 되었다.
이 문제를 해결하는데 정말 많은 시간을 쏟아부었다....
다른 분들은 이런 에러를 안 만났으면 하는 바람 + 또 다시 이런 에러를 겪고 싶지 않은 마음에
이 글을 작성했다.
이 에러를 해결하기까지 도움을 주신 많은 분들께 감사인사를 드립니다...
감사합니다.
