728x90
반응형
Node.js는 command line으로부터 arguments를 전달받는다.
Node.js application을 호출 시, 갯수에 상관없이 arguments를 전달할 수 있다.
Argument는 하나 또는 key value이다.
node app.js joe
또는
node app.js name=joe
전달된 argument는 process object의 argv property 배열로 저장되어 찾을 수 있다.
argv(short for 'argument values')
process.argv의 첫번째 element는 node command의 full path이고, 두 번째 element는 실행된 파일의 full path이다.
모든 추가 arguments는 세 번째부터 온다.
추가 arguments만 얻으려면 처음 2 params을 제외시킨다.
const args = process.argv.slice(2)
만약에 아래와 같이 index name없이 하나의 argument만 있는 경우 :
node app.js joe
아래와 같이 접근할 수 있다.
const args = process.argv.slice(2)
args[0]
다음과 같은 경우 :
node app.js name=joe
args[0] 는 name=joe 이다. 파싱이 필요하면 minimist library를 사용할 수 있다.
const args = require('minimist')(process.argv.slice(2))
args['name'] //joe
이 경우 모든 argument name 앞에 double dashes를 사용해야 한다.
node app.js --name=joe
nopt : option parter
github.com/npm/nopt/blob/master/README.md
nodeArgs.js
const nopt = require('nopt');
const knownOpts = {
"prodKey": [String]
}
const nodeArgs = nopt(knownOpts, null, process.argv);
process.nodeArgs = nodeArgs;
module.exports = {};
app.js
require('./nodeArgs');
let key = process.nodeArgs.prodKey;
console.log(key);
위와 같이 ArgsParser를 만들어 놓고, 다음과 같이 호출하여 사용 가능하다.
node app.js --prodKey 12345!!!
728x90
반응형
댓글