본문 바로가기

Node.js

Node.js - 자식 프로세스 돌리기 (Run child_process)

최근 Node 환경에서 Julia의 REPL을 돌려야하는 케이스가 생겨서 이를 실현 시키기 위해서 child_process 모듈을 사용해봤다.

 

구현

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

function spawnTest() {
  return new Promise(function(resolve, reject) {
    let process = spawn('python');
    const command1 = 'num1 = 1 \n';
    const command2 = 'num2 = 2 \n';
    const command3 = 'print(num1 + num2) \n';
    process.stdout.on('data', data => {
      console.log(data.toString());
    });
    try {
      process.stdin.write(command1);
      process.stdin.write(command2);
      process.stdin.write(command3);
      
      // stdin을 이용할때는 end()로 반드시 입력을 끝내야합니다.
      process.stdin.end();
      
      process.on('close', function (code) {
        console.log('end')
        resolve(code);
      });
    } catch (err) {
      console.log('error')
      reject(err);
    }
  })
 }

 spawnTest();

 

실행 결과

PS C:\Users\bumsu\codes\node-powershell-eg> node index
3

end