NodeJs에서 Python 파일 사용하기(child_process)

김두다·2021년 7월 15일

NodeJS

목록 보기
1/1
post-thumbnail

🤔 .tre 파일을 시각화하기 위하여 Python의 패키지를 사용할 일이 생겼다.

⛳ child_process

Node 내장 모듈로 다른 프로그램이나 명령어를 수행하고 싶을 때 사용한다. (외부 프로세스 제어)

사용법

자식 프로세스와 양방향 통신 및 다양한 관리 기능을 제공하는 spawn 함수 모듈 취득

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

spawn('파이썬 실행 명령어', [파일 경로, 매개변수 1, 매개변수 2, ....])

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

const result = spawn('python3', [reportResources, input, '-o', output, '-w', '12', '-l', '6']);

result.stdout.on('data', function(data) {
    console.log(data.toString());
});

result.stderr.on('data', function(data) { 
    console.log(data.toString()); 
});

자식 프로세스가 표준 출력으로 데이터를 출력할 때마다 스트림(stdout - 표준 출력, stderr - 표준 에러)의 data 이벤트를 사용하여 성공, 실패시 결과를 받을 수 있다.

child_process의 exec과 spawn 의 차이

exec (buffer)

  • 셸을 실행해서 명령어를 수행
  • 자식 프로세스 버퍼의 아웃풋을 리턴하는데 버퍼의 사이즈가 제한되어 있어 주로 상태 메세지 정도를 리턴 받을때 사용 한다.

spwan (stream)

  • 새로운 프로세스를 띄우면서 명령어를 수행
  • 자식 프로세스로부터 큰 바이너리 데이터를 받는 경우 사용 (data transfer의 사이즈 제한이 없음)

child_process는 node가 실행되는 환경의 터미널이나 프로그램을 실행시켜준다.

0개의 댓글