🧑💻 Web/JavaScript
[heroku] nodejs 배포할 때 dotenv 처리
Lennon
2022. 3. 25. 03:24
728x90
반응형
모두 API 키를 숨기기 위해. env 파일에 api키를 입력하고. gitignore에 지정해 많이 사용할 것이다.
const dotenv = require('dotenv');
dotenv.config();
그리고 dotenv를 작성하고 각각 API키를 process.env.0000를 사용해 호출할 것이다.
const port = process.env.PORT || 3000;
mongoose.connect(
process.env.MONGO_KEY,
{ useNewUrlParser: true, useUnifiedTopology: true },
function (err) {
if (err) {
console.error('mongoDB Connection Error!', err);
}
console.log('mongoDB Connected!');
// Server Open
app.listen(port, function () {
console.log(`Success http://localhost:${port}`);
});
}
);
이는 API Key를 은닉해 보안성을 증가시키면서 프로젝트를 수행하기 위한 좋은 방법이다.
그러나 배포할 때 이 부분은 항상 문제가 된다.
로컬에서 정상적으로 동작하는데 배포만 하면 오류 투성이라면 .env파일을 의심해봐야 한다.
이번 포스팅에선 heroku에 배포할 때. env 파일에 있는 사항을 heroku로 보낼 수 있는 방법에 대해 알아보려 한다.
해결 방법
heroku에선 heroku-dotenv를 지원해준다.
heroku-dotenv를 사용하면 원래 프로젝트에 있는. env파일을 heroku에 보낼 수 있다.
여기까지 왔으면 배포까진 했다는 의미이니 깊게 설명은 하지 않겠다.
$ npm i -g heroku-dotenv
heroku-dotenv를 다운로드한다.
만약 위 명령어가 에러가 난다면 아래 명령어로 설치해주도록 하자.
$ sudo npm install -g heroku-dotenv
$ heroku-dotenv push
그리고 위 명령어로 push 한다.
그럼 아래 그림과 같이. env에 있는 key들을 heroku 프로젝트로 보내주고, 이후 정상적으로 동작하는 것을 확인할 수 있다.
728x90
반응형