본문 바로가기
Programming/Node.js

Node.js에서 추가 명령어 받아 처리하는 방법(process.argv)

by 혀코 2019. 12. 27.

안녕하세요. 혀코입니다.

오늘은 Node.js에서 추가로 명령어를 받아서 처리하는 방법에 대해서 알아보겠습니다.

$ touch app.js
$ npm init
$ npm install chalk

app.js 파일을 만들고 npm 초기화해서 package.json 파일을 생성하고 chalk npm 모듈을 설치했습니다.

 

먼저 app.js를 다음과 같이 작성한 상태에서 시작하겠습니다.

const chalk = require('chalk')

console.log(chalk.green.inverse("Green Man"))

chalk npm 모듈을 사용하기 위해 제일 상단에 chalk 가 필요하다고 설정하고 Green Man 이 녹색 배경에 검은색 글자로 표시되도록 설정했습니다.

 

여기서 Node 명령어를 실행하면,

$ node app.js

'Green Man'이  표시됩니다.

 

추가로 명령어를 전달하는 방법은 Node 명령어를 실행할 때 뒤에 명령어를 추가해서 사용하면 됩니다.

$ node app.js hyukho

추가된 명령어 hyukho 가 표시되지 않고 위와 동일하게 'Green Man'이 표시 되는 것을 확인할 수 있습니다.

여기서 추가로 전달된 명령어를 확인하는 방법을  알아보겠습니다.

app.js 파일을 다음과 같이 변경합니다.

console.log(process.argv)

이렇게 변경하고 다음과 같이 실행하면,

$ node app.js hyukho

다음과 같이 결과를 표시합니다.

[
  'D:\\Programs\\nodejs\\node.exe',
  'D:\\hugo\\playground\\nodejs\\basics\\app.js',
  'hyukho'
]

list 형태인데 여기서 [2] 값이 hyukho로 추가된 값인 것을 확인할 수 있습니다.

그럼 app.js 파일을 다음과 같이 변경해서 추가로 전달받은 명령어만 출력할 수 있도록 변경해 보겠습니다.

console.log(process.argv[2])

이렇게 변경하고 Node 명령문을 실행하면,

$ node app.js hyukho

'hyukho' 를 출력하는 것을 확인할 수 있습니다.

이 기능을 사용해서 유저로 부터 명령문을 받아서 처리하는 프로그램을 작성할 수 있습니다.

app.js 파일을 다음과 같이 코딩합니다.

const command = process.argv[2]

if (command == "add") {
   console.log("add a text")
} else if (command == "remove") {
   console.log("remove a text")
}

여기서 유저가 add 붙여서 넣으면 'add a text'가 표시가 되고, delete를 붙여서 넣으면 'delete a text'가 표시됩니다.

$ node app.js add

add a text 가 표시됩니다.

 

$ node app.js remove

remove a text 가 표시됩니다.

 

여기서 추가적으로, 한개의 문장를 붙여서 넣으면, 그 단어는 process.argv[3]에 저장이 됩니다.

예를 들어, app.js를 다음과 같이 업데이트 하고, 

console.log(process.argv);

Node 명령어를 다음과 같이 실행하면,

$ node app.js add --title="This is a title"

아래와 같이 list 형태를 반환하는 것을 확인할 수 있습니다.

[
  'D:\\Programs\\nodejs\\node.exe',
  'D:\\hugo\\playground\\nodejs\\basics\\app.js',
  'add',
  '--title=This is a title'
]

 

 

이렇게 Node.js에서 유저로부터 추가로 명령어를 전달받아 처리하는 방법에 대해서 알아보았습니다.

유용하셨다면, 공감과 구독 부탁 드립니다.

감사합니다. :)

댓글