Lennon FE

[heroku] nodejs 배포할 때 dotenv 처리 본문

🧑‍💻 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
반응형
Comments