더북(TheBook)

먼저 명령 프롬프트의 명령어인 dir를 노드를 통해 실행해보겠습니다.

exec.js

const exec = require('child_process').exec;

const process = exec('dir');

process.stdout.on('data', function(data) {
  console.log(data.toString());
});  // 실행 결과

process.stderr.on('data', function(data) {
  console.error(data.toString());
});  // 실행 에러

exec의 첫 번째 인수로 명령어를 넣습니다. 리눅스나 맥에서는 dir: command not found라는 에러가 발생할 텐데, exec('dir') 대신 exec('ls')를 입력하면 됩니다. 실행하면 현재 폴더의 파일 목록들이 표시될 것입니다.

결과는 stdout(표준출력)와 stderr(표준에러)에 붙여둔 data 이벤트 리스너에 버퍼 형태로 전달됩니다. 성공적인 결과는 표준출력에서, 실패한 결과는 표준에러에서 표시됩니다. 버퍼는 2.7.2절에서 자세히 알아봅니다.