R과 nodej가 서로 통신하도록 노력하지만 몇 가지 문제가 있습니다. 내가 자식 프로세스에 명령을 보내모듈 child_process로 Nodejs에서 하나의 Input One Output을 실현하는 방법
var cp = require('child_process')
var spawn = cp.spawn
var r = spawn("rterm",["--ess" ,"--slave"])
r.stdout.on('data',function(data){
console.log(data.toString())
})
이 코드 덩어리보다 그것을 설명 할 것, 자식 프로세스는, 출력이 자동으로 Nodejs에 의해 다시 읽기 (적당한 길이 이내) 출력을 많이 생성 '데이터'리스너 때문입니다.
자식 프로세스의 경우 출력은 하나의 청크이며, Nodejs가 다시 읽으면 두 개 이상의 청크가됩니다. 그리고 그것은 내가 원하는 것이 아닙니다.
코드에서 어떻게 수정합니까?
나는 코드를 시험해 보았다. 그것은 내가 원한 것이 아니었다. 어쩌면 충분히 명확하지 않을 수도 있습니다. R에 하나의 명령을 보내면이 명령의 출력을 얻습니다.이 출력이 데이터 수신기 때문에 Nodejs에서 두 청크로 다시 읽힌다 고 가정 해 봅시다. nodejs가 다시 읽었을 때, 하나의 chunk가 될 때, 나는이 chuck 출력을 처리하기위한 코드를 작성하기 위해 무엇을 할 수 있는가? 그런 다음 다른 명령을 보내고 또 하나의 덩어리를 얻습니다. 당신의 방식대로, 출력은 하나의 버퍼링되고, 나는 명령에 따라 출력을 분리하기 위해 여분의 코드를 작성해야합니다. 이것은 가능하고 실용적이지 않습니다. –
출력 크기를 알면 스트림의 버퍼 크기를 늘릴 수 있지만 한 명령 만 보내는 경우 내 코드는 명령의 전체 결과를 출력합니다. 당신이 원하는게 뭔지 모르겠군요 ... – xShirase