스택큐힙리스트

어떻게 명령 줄 인수를 Node.js 프로그램에 전달하고 받을 수 있을까요? 본문

카테고리 없음

어떻게 명령 줄 인수를 Node.js 프로그램에 전달하고 받을 수 있을까요?

스택큐힙리스트 2024. 1. 23. 07:00
반응형

저는 특정 폴더로 실행하려는 Node.js로 작성된 웹 서버를 가지고 있습니다. JavaScript에서 인수에 어떻게 접근해야 하는지 잘 모르겠습니다. 다음과 같이 노드를 실행하고 있습니다:


$ node server.js 폴더명

여기서 server.js는 제 서버 코드입니다. Node.js 도움말에서 이것이 가능하다고 합니다:


$ node -h
사용법: node [옵션] script.js [인수]

JavaScript에서 이러한 인수에 어떻게 접근할 수 있을까요? 어떻게 검색해도 이 정보를 찾을 수 없었습니다.

답변 1

표준 메소드 (라이브러리 없음)


인수는 process.argv에 저장됩니다.


다음은 명령 줄 인수 처리에 관한 노드 문서입니다:



process.argv는 명령 줄 인수가 담긴 배열입니다. 첫 번째 요소는 'node'이고, 두 번째 요소는 JavaScript 파일의 이름입니다. 그 다음 요소들은 추가적인 명령 줄 인수입니다.



// process.argv 출력
process.argv.forEach(function (val, index, array) {
console.log(index + ': ' + val);
});

이것은 다음과 같이 생성될 것입니다:


$ node process-2.js one two=three four
0: node
1: /Users/mjr/work/node/process-2.js
2: one
3: two=three
4: four

답변 2

Node.js는 JavaScript로 작성된 런타임 환경으로, 명령 줄 인자를 받아 실행하는 기능을 제공합니다. 명령 줄 인자는 프로그램 실행 시 함께 제공되는 값으로, 프로그램에 필요한 데이터를 전달하는 데 사용됩니다. 이번 글에서는 Node.js 프로그램에 명령 줄 인자를 전달하고, 이를 수신하는 방법을 알아보겠습니다.
먼저, Node.js 프로그램을 실행할 때 명령 줄에서 인자를 전달해야 합니다. 일반적으로 다음과 같은 형식으로 사용됩니다.
```
node 프로그램명.js 인자1 인자2 ...
```
여기서 프로그램명.js는 실행할 JavaScript 파일의 이름이고, 인자1, 인자2 등은 전달할 인자들입니다. 예를 들어, 다음과 같이 프로그램을 실행할 수 있습니다.
```
node index.js argument1 argument2
```
이제 Node.js 프로그램에서 이 인자들을 수신하는 방법을 알아봅시다. Node.js는 `process` 객체를 통해 명령 줄 인자에 접근할 수 있도록 합니다. `process.argv`를 사용하여 명령 줄 인자들을 배열 형태로 받아올 수 있습니다. 이때, 첫 번째 인덱스에는 Node.js 실행 파일의 경로가 포함되므로, 실제 인자들은 인덱스 2부터 시작합니다.
```javascript
// index.js
// 명령 줄 인자 배열
const arguments = process.argv;
// 실제 인자들 출력
console.log(arguments.slice(2));
```
위 코드에서 `process.argv`를 사용하여 명령 줄 인자 배열을 받고, `arguments.slice(2)`를 통해 실제 인자들을 추출하여 출력합니다.
명령 줄에 'node index.js argument1 argument2'를 입력하면 `['argument1', 'argument2']`가 출력됩니다. 이제 Node.js 프로그램에서 명령 줄 인자들을 수신할 수 있게 되었습니다.
Node.js를 사용하여 명령 줄 인자를 전달하고 받는 방법에 대해 알아보았습니다. 명령 줄 인자를 활용하면 프로그램에 필요한 데이터를 유연하게 전달할 수 있으며, 이를 활용하여 다양한 기능을 구현할 수 있습니다.

반응형
Comments