Node.js에서 명령줄 인수 전달

표지 이미지 크레딧: Hunter x Hunter manga 토가시 요시히로, 당신의 밈화. <3

새로운 시리즈인 Junior JavaScript Jobhunting: Quick Tips for Technicals and Takehomes에 오신 것을 환영합니다! 최근에 부트캠프를 졸업한 저는 주니어 개발자 직책에서 JavaScript 기술 문제와 관련된 몇 가지 경험을 공유하고 싶었습니다. (나는 "주니어"라는 표현을 좋아하지 않지만 ... 그 제목의 두운에 어떻게 저항 할 수 있습니까?)

이 시리즈의 Part 1을 소급하여 만들었습니다. 바로 2부로 넘어가겠습니다.

Node.js에서 명령줄 인수 전달





몇 가지 도전 과제에서 저는 명령줄에서 하나 이상의 인수를 허용하는 애플리케이션을 생성하라는 요청을 받았습니다. 일반적으로 파일 이름 또는 YYYY-MM-DD와 같은 특정 형식으로 형식이 지정된 날짜를 전달하는 것과 관련됩니다.

명령줄 인수에 액세스할 수 있는 속성인 process.argv 에 대한 Node.js documentation 을 살펴보겠습니다.

The process.argv property returns an array containing the command line arguments passed when the Node.js process was launched. The first element will be process.execPath. See process.argv0 if access to the original value of argv[0] is needed. The second element will be the path to the JavaScript file being executed. The remaining elements will be any additional command line arguments.



시원한! 따라서 process.argv는 코드를 실행하는 데 사용되는 명령줄 인수의 문자열을 포함하는 배열입니다. $ node app.jsconsole.log(process.argv)를 실행하여 결과를 확인합니다.

$ node app.js

// console.log(process.argv)

[ '/Users/isalevine/.nvm/versions/node/v11.10.0/bin/node',
'/Users/isalevine/coding/nodejs/csv-parse-practice/app.js' ]
process.argv[0]는 Node.js의 경로를 보여주고 process.argv[1]는 우리가 실행한 app.js 파일의 경로를 보여줍니다. 둘 다 문자열로 액세스할 수 있습니다.

이제 로컬 .csv 파일의 파일 이름과 같은 추가 인수를 추가할 수 있습니다.

$ node app.js example_data.csv

// console.log(process.argv)

[ '/Users/isalevine/.nvm/versions/node/v11.10.0/bin/node',
'/Users/isalevine/coding/nodejs/csv-parse-practice/app.js',
'example_data.csv' ]

배열에 새 문자열이 있습니다. process.argv[2]는 우리가 제공한 파일 이름입니다. 원하는 만큼 인수를 계속 추가할 수 있습니다!

$ node app.js example_data.csv 2019-01-01 and_so_on and_so_on_again and_so_on_some_more

// console.log(process.argv)

[ '/Users/isalevine/.nvm/versions/node/v11.10.0/bin/node',
'/Users/isalevine/coding/nodejs/csv-parse-practice/app.js',
'example_data.csv',
'2019-01-01',
'and_so_on',
'and_so_on_again',
'and_so_on_some_more' ]
process.argv 사용에 대한 또 다른 좋은 점은 process 개체와 해당 속성 및 콘텐츠(예: .argv )를 코드가 실행되는 즉시 사용할 수 있고 전역적으로 액세스할 수 있다는 것입니다. 다시, from the Node.js docs :

The process object is a global that provides information about, and control over, the current Node.js process. As a global, it is always available to Node.js applications without using require().



매우 편리합니다! 이제 가서 명령줄 인수 전달 혼란을 일으키십시오!

그리고 여기에 있는 동안 process 또는 Node.js 명령줄 인수에 대한 설명을 자유롭게 남겨주세요.

좋은 웹페이지 즐겨찾기