이번 글은 dotenv 설정에 대해서 다루겠습니다.
dotenv를 설정하는 이유는 DB url을 감추기 위해서입니다.
DB url이 노출되어서 Github에 올라가면 보안상 위험이 있을 수 있으므로,
이를 dotenv를 통해서 안전하게 감춰줍니다.
dotenv를 설정하는 과정은 다음과 같습니다.
1) 우선, npm install dotenv로 dotenv를 다운 받습니다.
2) .env 파일을 만들고, MONGO_URL과 PORT를 추가해줍니다.
3) 다음은 db.js로 돌아와서 3줄의 코드를 추가해줍니다.
각 줄이 의미하는 바는 다음과 같습니다.
import dotenv from "dotenv" : dotenv를 db.js파일에서 사용할 수 있도록 import합니다.
dotenv.config() : .env파일 안에 있는 정보를 불러옵니다.
process.env.MONGO_URL: .env파일에 선언된 MONGO_URL을 가져옵니다.
4) npm start를 통해 실행하면, 다음과 같이 DB가 연결됨을 확인할 수 있습니다.
5) 만약 process.env.MONGO_URL을 주석처리하고 실행하면,
다음과 같은 에러 메시지가 뜨는 것을 확인할 수 있습니다.
에러 메시지를 해석하면 다음과 같습니다.
MongooseError: The `uri` parameter to `openUri()` must be a string, got "object". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.
-> mongoose.connect()의 첫번째 parameter는 반드시 string이어야 합니다.
OpenUri()의 Uri parameter는 String이어야 합니다.
즉, MongoDB를 연결하려면, 우선적으로 DB의 URL이 설정되어야 함을 확인할 수 있습니다.
6) 마지막으로 init.js로 이동해서, 다음과 같은 3줄의 코드를 추가해줍니다.
이 코드를 추가하는 이유는, init.js로 app이 시작됨과
동시에 dotenv가 적용되게 하기 위함입니다.
7)마지막으로 .gitignore에 .env를 추가해줍니다.
이 경우 NodeJS gitignore(https://github.com/github/gitignore/blob/master/Node.gitignore)
를 통해 gitignore를 추가해두었다면 이미 .env가 추가되어있음을 확인할 수 있습니다.
.gitignore에 추가된 파일들은 github에 업로드될 때, 제외되는 파일들입니다.
"다음은 노마드코더(https://academy.nomadcoders.co/)의 [초급 풀스택] 유튜브 클론 코딩 강의를 참고하였습니다."