Node.js - 노드 내장 모듈(child_process)

ryan·2022년 5월 7일
0
post-custom-banner

child_process

  • 다른 언어로 작성된 파일을 호출할 수 있음
  • 예를 들어, 효율적인 멀티 스레드 작업이 필요할 때 worker thread가 아닌 다른 언어로 멀티 스레드 작업을 하고 node에서 불러올 수 있다.
예제
const exec = require('child_process').exec; 
var process = exec('dir'); 
// 위는exec을 통해 터미널을 띄워서 dir이라는 명령어를 실행하는 것과 같은 의미

process.stdout.on('data', function (data) {  // 콘솔 호출해서 데이터에 담기

  console.log(data.toString()); // toString 안하면 2진법 언어 나옴
});

process.stderr.on('data', function (data) {
  console.error(data.toString());
});

// node (파일명) 입력 > exec(명령어) 실행됨.

다른 프로세스 불러오는 방식

spawn.js 생성 

const spawn = require('child_process').spawn;
const process = spawn('python',['test.py']); // spawn('언어',['연동할 파일'])
process.stdout.on('data', function (data) {
  console.log(data.toString()); 
});
process.stderr.on('data', function (data) {
  console.error(data.toString());
});
  • test.py 생성 후 멀티 스레드(또는 실행할 작업)작업 진행
  • spawn.js 실행 (단, 언어가 깔려 있어야 함.)
profile
프론트엔드 개발자
post-custom-banner

0개의 댓글