최근 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
'Node.js' 카테고리의 다른 글
Node.js - Socket.IO (0) | 2020.08.20 |
---|---|
Node.js - ws로 웹 소켓 사용해보기 (Web Socket Using ws Module) (0) | 2020.08.20 |
Node.js - Jest 를 이용한 테스팅 (Testing using Jest) (0) | 2020.08.17 |
Node.js - CORS (Cross-Origin Resource Sharing) (0) | 2020.08.16 |
Node.js - API 사용량 제한 구현, express-rate-limit (API Limit) (0) | 2020.08.16 |