안녕하세요. 혀코입니다.
오늘은 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에서 유저로부터 추가로 명령어를 전달받아 처리하는 방법에 대해서 알아보았습니다.
유용하셨다면, 공감과 구독 부탁 드립니다.
감사합니다. :)
댓글