> 웹 프론트엔드 > 프런트엔드 Q&A > nodejs에서 명령줄을 호출하는 방법

nodejs에서 명령줄을 호출하는 방법

PHPz
풀어 주다: 2023-04-17 17:12:08
원래의
2150명이 탐색했습니다.

Node.js는 웹 애플리케이션 및 명령줄 도구 개발에 널리 사용되는 확장성이 뛰어난 오픈 소스 JavaScript 플랫폼입니다. Node.js에서는 하위 프로세스 API를 사용하여 운영 체제의 명령줄에 액세스하고 시스템 명령을 실행할 수 있습니다. 이 기사에서는 하위 프로세스 API를 사용하여 Node.js에서 명령줄을 호출하는 방법을 소개합니다.


하위 프로세스 API 소개

Node.js는 Node.js 프로그램에서 하위 프로세스를 생성하고 상호 작용할 수 있는 child_process 모듈을 제공합니다. 이 모듈을 통해 명령줄을 호출할 수 있습니다.

child_process 모듈에서 가장 일반적으로 사용되는 두 가지 API는 generate와 exec입니다. generate는 명령줄을 실행하기 위해 하위 프로세스를 시작하고 프로세스와 상호 작용할 수 있는 개체를 반환합니다. exec는 명령줄을 실행하고 stdout 및 stderr을 반환하는 비동기 함수입니다.

spawn 메서드

spawn 메서드는 명령줄을 실행하기 위해 새 프로세스를 시작하는 데 사용됩니다. 이 메서드는 실행할 명령과 매개변수 배열이라는 두 가지 매개변수를 받습니다.

예:

const { spawn } = require('child_process');
const ls = spawn('ls', ['-lh', '/usr']);

ls.stdout.on('data', (data) => {
  console.log(`stdout: ${data}`);
});

ls.stderr.on('data', (data) => {
  console.error(`stderr: ${data}`);
});

ls.on('close', (code) => {
  console.log(`子进程退出码:${code}`);
});
로그인 후 복사

여기서는 스폰 메소드를 사용하여 "ls -lh /usr" 명령을 실행했습니다. 이 메서드는 stdin, stdout 및 stderr 속성을 사용하여 하위 프로세스와 상호 작용할 수 있는 ChildProcess 개체를 반환합니다. 이 예에서는 하위 프로세스가 출력하는 데이터 및 오류 정보를 캡처하기 위해 하위 프로세스의 stdout 및 stderr 이벤트를 수신합니다. 자식 프로세스가 종료되면 닫기 이벤트도 수신합니다.

exec 메소드

exec 메소드를 사용하면 명령줄을 실행하고 명령줄의 stdout 및 stderr 출력을 반환할 수 있습니다. 이 메소드는 실행될 명령과 stdout, stderr 및 오류 객체의 세 가지 매개변수를 취하는 콜백 함수라는 두 개의 매개변수를 받아들입니다.

예:

const { exec } = require('child_process');

exec('ls', (err, stdout, stderr) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log(`stdout: ${stdout}`);
  console.error(`stderr: ${stderr}`);
});
로그인 후 복사

여기서는 exec 메소드를 사용하여 "ls" 명령을 실행했습니다. 콜백 함수에서는 stdout 및 stderr 출력과 발생할 수 있는 모든 오류를 캡처합니다.

명령줄과 상호작용

명령줄을 호출하여 명령을 실행하는 것 외에도 Node.js 프로그램의 명령줄과 상호작용할 수도 있습니다. generate 및 exec 메소드 모두에서 자식 프로세스에 입력을 보낼 수 있는 stdin 속성이 제공됩니다.

예를 들어 Windows에서 Node.js 프로그램을 시작하고 명령줄에 run 명령을 입력합니다.

const { spawn } = require('child_process');
const node = spawn('node');
node.stdin.write('console.log("Hello, world!");\n');
node.stdin.write('process.exit();\n');
로그인 후 복사

여기에서는 generate 메서드를 사용하여 새 Node.js 프로세스를 시작하고 stdin 속성을 통해 JavaScript 프로그램을 전달합니다. 프로세스로 전송됩니다. 프로그램은 "Hello, world!"를 인쇄하고 종료됩니다.

요약

이 문서에서는 하위 프로세스 API를 사용하여 Node.js에서 명령줄을 호출하는 방법을 설명합니다. 우리는 generate 및 exec 메서드의 사용법을 배웠고 명령줄과 상호 작용하는 방법을 배웠습니다. 하위 프로세스 API를 사용하면 Node.js에서 명령줄을 쉽게 실행할 수 있어 Node.js의 애플리케이션 시나리오가 더욱 풍부해집니다.

위 내용은 nodejs에서 명령줄을 호출하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿