TIL WIL
2022_10_07
문종현
2022. 10. 7. 15:03
스키마의 index 부터가 너무 다르잖아
내가 사용한 코드
const mongoose = require("mongoose"); // 몽구스 라이브러리 가져오기
const connect = () => {
mongoose
//.connect("mongodb:// ", { useNewUrlParser: true })
.connect("mongodb:// ", { useNewUrlParser: true })
.catch(err => console.log(err)); // 에러가 발생하면 콘솔에 에러 찍어줘
};
mongoose.connection.on("error", err => {
console.error("몽고디비 연결 에러", err);
});
module.exports = connect;
const mongoose = require("mongoose");
const connect = () => {
const id = 'XXXX';
const password = 'XXXX';
const dbName = 'XXXX';
const uri = `mongodb+srv://${id}:${password}@cluster0.XXXXXXX.mongodb.net/${dbName}?retryWrites=true&w=majority`;
mongoose.connect(
uri,
{
useNewUrlParser: true,
ignoreUndefined: true,
useUnifiedTopology: true,
},
(error) => {
if (error) console.log("Mongo DB Connect Error");
else console.log("Mongo Db Connect Success");
}
);
};
// 몽구스 Connection에 이벤트 리스너를 삽입
// 에러 발생 시 에러 내용을 기록
mongoose.connection.on("error", (err) => {
console.error("Mongo DB Connect Error", err);
});
// 연결 종료 시 재연결을 시도한다.
mongoose.connection.on('disconnected', () => {
console.error("Mongo Db DisConnect. reconnect.");
connect();
})
module.exports = connect;
moongoose.connect() 함수에 주렁주렁 옵션이 달린 것은 내게 시기상조라고 치더라도.
코드 가장 하단의 에러처리에 재연결 시도를 추가해 놓은 것은 눈여겨 보아야 한다.
또 저렇게 데이터 베이스 주소를 템플릿 리터럴로 만들어 놓으면 후에 id, password, 데이터베이스 이름만 바꿔가면 되니 참 편하지 않나.