Linix기반의 운영체제의 PC에는 시스템 자체에 전역변수를 설정할 수 있다. 그리고 시스템에 설정한 전역 변수를 환경변수라고 한다. export를 이용하여 환경변수를 설정할 수 있다.
export
터미널에 위와같은 명령어를 실행하면 다영한 환경변수가 있다는걸 볼 수 있다. 심지어 위의 명령어를 통해서 환경변수를 추가할 수도 있다.
export class="hohoho"
이와 같이 export명령어로 class="hohoho"를 환경변수로 만들수 있다.
(여기서 =의 앞뒤로는 공백이 존재해서는 안된다.)
echo로 환경변수로 입력하면 환경변수에 들어있는 값을 확인할 수 있다.
환경변수의 앞에는 달러($)를 입력해 변수라는 뜻을 터미널에 알려주어야 한다.
export로 urclass="is good"이라는 환경변수를 설정하였고 그 값을 불러오기 위해서 echo를 사용하였다. echo $urclass라는 환경변수를 불러왔고 이에 해당하는 값은 is good이 되겠다.
npm모듈 dotenv를 사용하면 JS에서 환경변수를 사용할 수 있다. npm모듈을 설치하고 사용하기 위해서 새로운 폴더를 만들고 npm init을 입력,dotenv를 install한다.
mkdir somefolder
cd somefolder
npm init
npm install dotnev
https://juicyjerry.tistory.com/242
npm모듈로 JS에서 환경변수에 접근할 수 있게 되었다. 새로운 파일 index.js를 생성하고 process.env를 출력한다. Node.js의 내장객체 process.env를 이용하면 명령어 export로 확인한 내용과 동일한 내용을 객체로 출력되는걸 볼 수 있다.
nano index.js
cat index.js
nano로 index.js라는 파일을 생성하고 index.js를 출력할 수 있도록 console.log(process.env)를 파일에 저장해두고, cat으로 index.js파일에 어떤 내용이 있는지를 확인한다.
node index.js
node를 실행시켜 process.env를 확인한다.
명령어 export로 적용한 환경변수는 지금 사용중이 터미널에서만 임시로 사용이 가능하다. 환경변수를 Node.js에서는 파일 .env을 만들어 저장하는 방법을 사용한다.
nano .env
cat .env
.env파일은 환경변수를 담고 있는 파일이며, Node.js를 이용하여 이 파일을 환경변수로 지정해두려고 한다.
nano로 .env라는 파일을 만들었기 때문에 환경변수를 설정한 내용을 적어두어야 한다.
myname="kimcoding"
위와같은 내용을 저장해두고 .env이라는 파일을 위에서 만든 idnex.js라는 파일에서 Node.js를 사용하여 환경변수를 설정할 것이다.
nano index.js
다시한번 nano를 이용하여 해당 파일을 편집해보겠다.
console.log(process.env)
현재는 console.log로 process.env를 출력하고 있지만 내가 원하는건 .env파일 자체를 환경변수로 두려고 하기 때문에 몇가지 설정이 필요하다.
위에서 설치한 모듈인 dotenv를 설정해주기 위해 아래와 같이 설정해준다.
const dotenv = require("dotenv")
dotenv.config();
위의 설정으로 dotenv 설정을 해두었다. 방금 만들었던 .env파일을 참조하여 환경변수를 설정해주는 기특한 모듈이었던 것이다.
해당 환경변수가 잘 들어있는지 확인해보기위해 console.log을 찍어보자.
console.log(process.env.myname) // 출력 kimcoding