환경 변수
Coddy Node.js 여정의 Node.js 기초 섹션에 포함된 레슨. 33개 중 6번째.
일부 설정은 프로그램 뒤에 입력하는 단어가 아니라 프로그램을 실행하는 사람에게 속합니다.
환경 변수는 셸이 모든 프로그램에 전달하는 이름이 붙은 문자열입니다. Node에서는 이를 process.env에 넣습니다. 설정되지 않은 변수는 undefined입니다. a ?? b는 a가 undefined 또는 null이 아닌 경우 a를 반환하고, 그렇지 않으면 b를 반환합니다. 따라서 process.env.CITY ?? 'Lisbon'은 CITY가 설정되지 않았을 때 'Lisbon'입니다.
// CITY=Oslo node weather.js
const city = process.env.CITY ?? 'Lisbon';
console.log(`Weather for ${city}`);노트북에서는 명령어 앞에 값을 입력해 한 번만 설정할 수 있습니다. CITY=Oslo node weather.js는 Weather for Oslo를 출력하고, node weather.js만 실행하면 Lisbon을 출력합니다. 이름은 대소문자를 구분합니다. 코드 옆의 터미널에서는 변수를 설정하지 않으므로 항상 기본값을 표시합니다.
챌린지
쉬움메모에는 해당 메모의 주인이 표시되어야 합니다. 이름은 명령 뒤에 입력한 단어가 아니라, 셸이 프로그램에 전달하는 이름이 지정된 설정인 환경 변수에서 가져옵니다.
notes.js의list분기에서 환경 변수NOTES_OWNER를 읽으세요.No notes yet앞에 제목 줄을 출력하세요.Notes for뒤에 주인의 이름을 표시합니다.NOTES_OWNER가 설정되지 않은 경우 이름 대신you라는 단어를 사용하세요.
NOTES_OWNER를 Ada로 설정하면 list는 다음을 출력합니다.
Notes for Ada
No notes yetNOTES_OWNER가 설정되지 않으면 다음을 출력합니다.
Notes for you
No notes yet다른 명령은 변경하지 않습니다.
직접 해보기: $ node notes.js 뒤의 입력란에 list를 입력하고 Enter 키를 누르세요. Notes for you가 표시되고, 그다음 No notes yet가 표시됩니다. 여기의 터미널에서는 환경 변수를 설정할 수 없으므로 항상 you가 표시됩니다. ‘확인’을 누르면 검사에서도 list를 실행하는데, NOTES_OWNER를 Ada와 Grace로 설정하고 각각 Notes for Ada와 Notes for Grace가 출력되는지 확인합니다. 노트북에서는 NOTES_OWNER=Ada node notes.js list를 사용해 직접 시험해 볼 수 있습니다.
직접 해보기
// 메모 도구는 여기서 시작합니다.
const [command, ...words] = process.argv.slice(2);
const text = words.join(' ');
if (command === 'add') {
console.log(`Adding: ${text}`);
} else if (command === 'list') {
console.log('No notes yet');
} else {
if (command) {
console.error(`Unknown command: ${command}`);
}
console.error('Usage: node notes.js <command> [words]');
process.exit(1);
}
Node.js 기초의 모든 레슨
직접 연습해 보세요: Express 플레이그라운드