Node.js의 명령줄에서 입력을 수락하는 방법은 무엇입니까?

Node Jsui Myeonglyeongjul Eseo Iblyeog Eul Sulaghaneun Bangbeob Eun Mueos Ibnikka



Node.js는 사용자가 파일에서 또는 명령줄에서 직접 JavaScript 코드를 실행할 수 있도록 하는 잘 알려진 오픈 소스 무료 JavaScript 런타임 환경입니다. 파일에서 JavaScript 코드를 실행하려면 외부 “. JS ” 파일 명령을 실행하는 동안 명령줄은 JavaScript 코드를 한 줄씩 직접 실행합니다.

때때로 사용자는 '를 통해 명령줄에서 Node.js 애플리케이션을 시작하는 동안 정보를 구성해야 합니다. 노드<파일 이름> '. 이러한 상황에서 사용자는 해당 정보를 '.' 파일에 쓰는 대신 실행 명령의 입력으로 직접 전달해야 합니다. JS ” 파일.







이 글에서는 Node.js의 명령줄에서 입력을 받아들이는 가능한 모든 방법에 대해 설명합니다.



Node.js의 명령줄에서 입력을 수락하는 방법은 무엇입니까?

Node.js는 명령줄에서 입력을 허용하기 위해 다음 모듈을 제공합니다.



'부터 시작해 보겠습니다. 판독선 ” 모듈.





전제조건 : 어떤 방법을 실제로 구현하기 전에 먼저 “. JS ” 파일을 만들고 모든 소스 코드를 여기에 작성합니다. 여기에서 우리는 “ 색인 .js' 파일입니다.

방법 1: 'readline' 모듈을 사용하여 명령줄에서 입력 수락

판독선 ” 모듈은 읽기 가능한 스트림에서 사용자 입력을 읽고 해당 응답을 결과 출력으로 반환하기 위한 인터페이스를 생성합니다. 사용자가 '를 사용하여 설치하지 않고도 Node.js 애플리케이션으로 직접 가져올 수 있도록 내장된 모듈입니다. npm '.



이 시나리오에서는 명령줄에서 입력을 가져온 다음 출력 화면에 인쇄하는 데 사용됩니다. 실제 구현은 다음과 같습니다.

const 판독선 = 필요하다 ( '읽기선' )
const rl = readline. 생성인터페이스 ( {
입력 : 프로세스. 표준 입력 ,
산출 : 프로세스. 표준 출력
} )
rl. 질문 ( `최고의 플랫폼 ~을 위한 기술적인 내용 ? ` , 웹사이트 => {
rl. 질문 ( `탐색하고 싶은 카테고리는 무엇인가요? ? ` , 범주 => {
콘솔. 통나무 ( `웹사이트 : $ { 웹사이트 } , 범주 : $ { 범주 } ` )
rl. 닫다 ( )
} )
} )

위의 코드 라인에 대한 설명은 다음과 같습니다.

  • 첫째, “ 필요하다 ()' 메소드는 '를 가져옵니다. 판독선 ” 모듈을 현재 Node.js 프로젝트에 추가합니다.
  • 다음으로는 “ 생성인터페이스 ()' 메소드는 '를 지정합니다. 입력과 출력 ” 객체로 스트리밍됩니다. “ 입력 ” 스트림은 “ 프로세스.stdin ” 사용자로부터 입력을 받기 위한 속성입니다.
  • 산출 ” 스트림은 “ 프로세스.stdout ” 입력 스트림을 읽고 이를 주어진 입력 스트림의 표준 출력으로 인쇄하기 위한 속성입니다.
  • 그 후, “ rl.질문 ()' 메소드는 사용자로부터 입력을 받습니다. 질문을 첫 번째로 전달하고 콜백 함수를 두 번째 인수로 전달합니다. 주어진 콜백 화살표 함수는 사용자가 입력한 값을 검색합니다.
  • 주어진 '의 정의에서 웹사이트 ', 그리고 ' 범주 ” 콜백 화살표 함수, “ 콘솔.로그 ()” 방식을 사용하여 입력된 값을 표시합니다.
  • 마지막으로 “ rl.close ()” 메소드는 위에서 생성된 인터페이스를 닫습니다.

산출

'를 시작합니다. 색인 .js” 파일은 제공된 명령을 실행하여 다음과 같습니다.

노드 인덱스. JS

다음 출력은 명령줄에서 사용자 입력을 가져온 다음 입력된 값을 표준 출력으로 표시하는 readline 인터페이스를 보여줍니다.

방법 2: 'readline-sync' 모듈을 사용하여 명령줄에서 입력 수락

readline-동기화 ”는 하드코딩된 질문과 관련된 정보를 동기적으로 검색하고 향후 작업을 위해 해당 답변을 저장하는 타사 모듈입니다. 이는 명령줄에서 클라이언트와 서버 간의 통신 역할을 합니다.

비동기식 모듈과 동기식 모듈의 주요 차이점은 “ 비동기식 ”는 지정된 작업이 수행되지 않을 때까지 소스 코드의 실행을 차단하는 반면 동기 모듈은 코드를 한 줄씩 순차적으로 실행합니다.

'readline-sync' 모듈 설치

그만큼 'readline-동기화' module은 내장 모듈이 아니므로 아래 명령을 실행하여 수동으로 설치해야 합니다.

npm 설치 readline - 동조

출력에는 readline-sync 모듈이 현재 Node.js 프로젝트에 추가되었음을 보여줍니다.

이제 “ readline-동기화 ” 모듈은 주어진 코드 조각을 따라 실제적으로 실행됩니다.

~였다 readlineSync = 필요하다 ( 'readline-동기화' ) ;
~였다 emp이름 = readlineSync. 질문 ( '직원 이름: ' ) ;
~였다 jd = readlineSync. 질문 ( '업무 설명서: ' ) ;
~였다 회사 = readlineSync. 질문 ( '회사: ' , {
} ) ;
콘솔. 통나무 ( emp이름 + '로 작동합니다' + jd + ' 안에 ' + 회사 ) ;

위 코드에 대한 설명은 다음과 같습니다.

  • 첫째, “ readline-동기화 ' 모듈은 파일 내부로 가져오고 해당 객체는 새 변수에 저장됩니다. ' readlineSync '.
  • 다음으로 '라는 질문을 사용하여 쿼리를 요청합니다. 질문 ()” 메서드를 인수로 지정하여 지정합니다.
  • 다음 질문에도 동일한 절차가 사용됩니다.
  • 그 후, “ 콘솔.로그 ()” 메소드를 사용하여 입력된 값을 인용된 문자열과 함께 표시합니다.

산출

'를 실행합니다. 색인 .js” 파일:

노드 인덱스. JS

출력은 동기식으로 사용자의 입력이 '를 사용하여 취해지고 표시되었음을 보여줍니다. readline-동기화 ' 모듈:

방법 3: '프롬프트' 모듈을 사용하여 명령줄에서 입력 수락

즉각적인 ”는 사용자 입력을 변수 값으로 저장한 다음 이를 결과 출력으로 검색하는 프롬프트 기능을 생성하는 비동기 모듈입니다. 읽기 및 쓰기 가능 스트림을 명시적으로 구성할 필요가 없기 때문에 ' 판독선 ” 모듈.

'프롬프트' 모듈 설치

즉각적인 '는 또한 '를 사용하여 쉽게 설치할 수 있는 타사 모듈입니다. npm ' 이런 식으로:

npm 설치 프롬프트 -- 구하다

위 명령에서 ' -구하다 ” 플래그는 “를 추가합니다. 즉각적인 ' 모듈을 ' 패키지.json ” 파일.

'라고 분석할 수 있다. 즉각적인 ”가 현재 Node.js 프로젝트에 추가되었습니다:

이제 설치된 “ 즉각적인 ” 모듈은 실제로 다음 코드 조각을 사용하여 생성됩니다.

const 즉각적인 = 필요하다 ( '즉각적인' )
즉각적인. 시작 ( )
즉각적인. 얻다 ( [ '저자이름' , '범주' ] , ( 실수 , 결과 ) => {
만약에 ( 실수 ) {
던지다 실수

} 또 다른 {
콘솔. 통나무 ( `$ { 결과. 작성자 이름 } $에서 작동 { 결과. 범주 } ` )

}
} )

위에 언급된 코드 블록에서:

  • 필요하다 ()' 메소드는 '를 가져옵니다. 즉각적인 ” 모듈을 프로젝트에 추가합니다.
  • 시작 ()” 메소드가 프롬프트를 시작합니다.
  • 얻다 ()” 메소드는 명령줄을 통해 사용자로부터 입력을 받습니다. 첫 번째와 두 번째 매개변수로 속성 이름과 콜백 화살표 함수를 지정합니다.
  • '를 포함한 콜백 함수 실수 ' 그리고 ' 결과 ” 매개변수는 “ 다른 경우라면 ' 성명.
  • 어떤 유형의 오류가 발생하면 ' 만약에 ” 블록은 해당 오류를 발생시킵니다. 그렇지 않으면 “ 또 다른 ” 블록은 지정된 속성의 값을 출력으로 표시합니다.

산출

'를 실행하세요. 색인 .js” 파일:

노드 인덱스. JS

다음 출력은 지정된 속성을 기반으로 사용자 입력을 가져온 다음 해당 값을 출력으로 검색합니다.

방법 4: 'inquirer' 모듈을 사용하여 명령줄에서 입력 수락

Node.js에서는 “ 질문자 ”는 명령줄에서 입력을 받는 쉬운 방법입니다. 사용자로부터 입력을 받은 다음 '를 사용하여 출력을 반환하는 몇 가지 유용한 방법이 제공됩니다. 답변 ” 개체와 “. 그 다음에 ()” 내장 메소드.

목록, 옵션, 입력, 확인란 등과 같은 명령줄을 통해 사용자에게 다양한 유형의 질문을 하는 데 유용합니다. 이는 쿼리 기반 작업을 위해 명령줄 인터페이스 인터페이스를 대화형으로 만드는 편리한 방법을 제공합니다.

'에 대한 자세한 지침을 따르십시오. Node.js Inquirer를 사용하여 명령줄에서 입력 받기 ” 실제 시연을 위해.

팁: 노드의 명령줄에서 인수를 전달하는 방법은 무엇입니까?

사용자는 명령줄에서 인수를 전달할 수도 있습니다. 이를 위해 “ process.argv ” 속성을 사용할 수 있습니다. “ argv ”는 “process” 모듈의 내장 속성으로, “를 사용하여 Node.js 애플리케이션을 실행하는 동안 명령줄에서 인수를 전달하는 데 사용됩니다. 노드<파일 이름> ' 명령.

'에 대한 자세한 안내를 따르세요. Node.js의 명령줄에서 인수 전달 ” 실제 시연을 위해.

Node.js의 명령줄에서 입력을 받아들이는 것이 전부입니다.

결론

명령줄에서 입력을 수락하려면 비동기식 ' 판독선 '또는 동기식 ' readline-동기화 ” 모듈. 또한, '를 통해서도 수행할 수 있습니다. 즉각적인 ' 아니면 그 ' 질문자 ” 모듈. '를 제외하고 수정 지시 동기화 ” 모듈의 경우 나머지 모듈은 모두 비동기식입니다. 이 글에서는 Node.js의 명령줄에서 입력을 받아들이는 가능한 모든 방법에 대해 논의했습니다.