튜토리얼을 따르려고하는데 다음과 같이 말합니다.
자격 증명을로드하는 몇 가지 방법이 있습니다.
- 환경 변수에서로드
- 디스크의 JSON 파일에서로드
키는 다음과 같아야합니다.
USER_ID, USER_KEY
… 즉, 환경 변수를 올바르게 설정하면 응용 프로그램에서 자격 증명을 전혀 관리 할 필요가 없습니다.
일부 인터넷 검색을 기반으로 process.env
? 에서 변수를 설정 해야하는 것으로 보입니다 . 이 자격 증명을 어떻게 그리고 어디에 설정합니까? 예를 들어주세요.
답변
환경 변수 (이 경우)는 자격 증명을 응용 프로그램에 전달하는 데 사용됩니다. USER_ID
그리고 USER_KEY
모두에서 액세스 할 수 process.env.USER_ID
및 process.env.USER_KEY
각각. 편집 할 필요가 없으며 컨텐츠에 액세스하면됩니다.
그들은 단순히로드 사이에 당신에게 선택권을주는 것 같습니다 USER_ID
및 USER_KEY
중 하나에서 process.env
디스크의 일부를, 지정된 파일이나.
이제 마술은 응용 프로그램을 실행할 때 발생합니다.
USER_ID=239482 USER_KEY=foobar node app.js
사용자 ID 239482
와 사용자 키를로 전달합니다 foobar
. 테스트에는 적합하지만 프로덕션 환경에서는 변수를 내보내도록 일부 bash 스크립트를 구성하고있을 것입니다.
답변
dotenv 패키지를 살펴 보는 것이 좋습니다.
https://github.com/motdotla/dotenv
@ Benxamin의 답변에서 제안 된 라이브러리와 비슷하지만 훨씬 깨끗하고 bash 스크립트가 필요하지 않습니다. 또한 코드 기반이 널리 사용되고 유지 관리된다는 점에 주목할 가치가 있습니다.
기본적으로 .env 파일이 필요합니다 (git / mercurial / etc에서 무시하는 것이 좋습니다).
FOO=bar
BAZ=bob
그런 다음 응용 프로그램 항목 파일에 가능한 빨리 다음 줄을 입력하십시오.
require('dotenv').config();
팔. 끝난. ‘process.env’는 이제 위 변수를 포함합니다 :
console.log(process.env.FOO);
// bar
‘.env’파일은 필요하지 않으므로 앱이 없을 때 앱이 넘어 질까 걱정할 필요가 없습니다.
답변
명령 줄에 env 값을 제공하십시오.
USER_ID='abc' USER_KEY='def' node app.js
답변
다음과 같이 프로세스 글로벌 변수를 통해 환경 변수를 설정할 수 있습니다.
process.env['NODE_ENV'] = 'production';
모든 플랫폼에서 작동합니다.
답변
관리 옵션을 원하면 envs npm 패키지를 사용해보십시오 . 설정된 경우 환경 값을 반환합니다. 그렇지 않으면, 환경에 있지 않은 경우 전역 기본값 오브젝트 변수에 저장되는 기본값을 지정할 수 있습니다.
사용 .env의를 파일 ( “점 EE-KO-V 시리즈를”) 또는 환경은 여러 가지 이유로 좋다. 개인은 자신의 구성을 관리 할 수 있습니다. 고유 한 환경 설정을 사용하여 다양한 환경 (dev, stage, prod)을 클라우드 서비스에 배포 할 수 있습니다. 합리적인 기본값을 설정할 수 있습니다.
.env
파일 안에 각 줄은 다음 예제와 같은 항목입니다.
NODE_ENV=development
API_URL=http://api.domain.com
TRANSLATION_API_URL=/translations/
GA_UA=987654321-0
NEW_RELIC_KEY=hi-mom
SOME_TOKEN=asdfasdfasdf
SOME_OTHER_TOKEN=zxcvzxcvzxcv
버전 관리 저장소에 파일 을 포함 시키지 않아야 .env
합니다 ( .gitignore
파일에 추가 ).
에서 변수를 가져 오려면 .env
파일 환경으로 bash 스크립트를 사용 export NODE_ENV=development
하여 응용 프로그램을 시작하기 직전에 동등한 작업을 수행 할 수 있습니다 .
#!/bin/bash
while read line; do export "$line";
done <source .env
그런 다음 응용 프로그램 자바 스크립트에갑니다.
var envs = require('envs');
// If NODE_ENV is not set,
// then this application will assume it's prod by default.
app.set('environment', envs('NODE_ENV', 'production'));
// Usage examples:
app.set('ga_account', envs('GA_UA'));
app.set('nr_browser_key', envs('NEW_RELIC_BROWSER_KEY'));
app.set('other', envs('SOME_OTHER_TOKEN));
답변
운영 체제와 쉘에 따라 다릅니다.
에 쉘 bash는 리눅스 , 당신은 (콘솔에서)이 같은 환경 변수를 만들 :
export FOO=bar
우분투 환경 변수에 대한 자세한 정보 (예 🙂
답변
ctrlplusb가 말했듯이 package을 사용하는 것이 좋지만 dotenv
이것을 수행하는 또 다른 방법은 js 파일을 만들고 앱 서버의 첫 번째 줄에 파일을 요구하는 것입니다.
env.js :
process.env.VAR1="Some value"
process.env.VAR2="Another Value"
app.js :
require('env')
console.log(process.env.VAR1) // Some value