mongoDB에 연결할 때 mongoDB의 아이디와 비밀번호가 노출된 상황에서 해당 파일을 그대로 배포하거나 github등에 올릴 경우 타인이 악용할 수 있기 때문에 비밀번호 등은 따로 떼어놓은 다음 gitignore 등으로 관리하게된다.
module.exports = {
mongoURI: "mongodb+srv://{id}:{password}@boiler-plate.vms94mj.mongodb.net/?retryWrites=true&w=majority",
};
해당 파일을 생성한 다음 index.js에서 application code만 따와 dev.js에서 따로 관리해준다.
.gitignore에 dev.js 추가
해당 파일은 github에 올라가면 안되기 때문에 gitignore 파일에 dev.js를 추가해준다.
config/prod.js과 config/key.js 생성
먼저 해당 파일을 생성하는 배경부터 알고가자면 개발을 할 때에는 두가지 환경에서 가능하다.
module.exports = {
mongoURI: process.env.MONGO_URI,
};
process.env.MONGO_URI에서 MONGO_URI는 heroku 등에서 동일하게 해주어야한다.
if (process.env.NODE_ENV === "production") {
module.exports = require("./prod");
} else {
module.exports = require("./dev");
}
key 파일에서 위에서 말한 분기 처리를 해주는데 production 모드 일 경우에는 prod.js 파일을 이용하고, development 모드일 경우에는 dev.js 파일을 이용한다.
const config = require("./config/key");
mongoose
.connect(config.mongoURI)
.then(() => console.log("MongoDB Connected..."))
.catch((err) => console.log(err));
key 파일을 통한 분기 처리를 통하여 환경에 따라 어디로 연결될지 처리해준다.👍
따라하며 배우는 노드, 리액트 시리즈 - 기본 강의 를 공부하며 작성한 글입니다.