Web Programming/Server

Node.js로 .env 활용하기

jinmc 2021. 12. 16. 14:44
반응형

사용하는 이유:

개발서버에서 잘 돌아가던 서버가 라이브 프로덕션 서버에서 안돌아가는 것을 확인하였습니다.

확인해보니, 개발서버에서 Node.js 에서 Python process를 콜하기 위해서 파이썬을 부르는 과정에서 

절대경로를 사용해야만 돌아가야 하는 라이브러리가 있었는데, (로깅과 nssm 서비스 관련)

파이썬 절대경로의 위치가 개발서버와 라이브서버가 다르기 때문이었습니다.

 

물론 이를 해결하는 방법으로는 여러 가지가 있겠지만, 

가장 바람직한 방법으로는, .env 파일과 같은 파일을 만들어놓고, 

그 파일에서 변수들을 가져오는 방법이 가장 좋은 방법이라고 생각됩니다.

.env 파일 같은 경우에는 .gitignore 파일에 적어놓음으로써 업데이트 되지 않도록 합니다.

물론, example.env 같은 파일을 만듬으로써 예제를 만들어 놓을수도 있겠죠.

 

.env 파일을 사용해서 parameter를 불러오는 법은 어렵지 않습니다.

가령, .env에 이런식으로 python 지정경로를 해줬다고 하면,

#Python location
PYTHON = C:/ProgramFiles/Python/Python37/python.exe
DIRNAME = C:/ai_inferface/

이용할 때는 process를 이용합니다.

# node.js 파일

const python = process.env.PYTHON
const dirname = process.env.DIRNAME

단 여기서 주의할 점은, 

dotenv 라는 NPM library를 install해줘야 위의 코드가 작동한다는 점입니다.

npm 이나 yarn을 사용해서 dotenv 라이브러리를 설치해줍니다.

 

npm install dotenv --save
yarn add dotenv

이후,  node 가 실행되는 파일의 가장 첫 줄에 config를 불러줍니다.

 

require('dotenv').config();
반응형