0
我試圖使R和nodej相互通信,但我遇到了一些問題。我將與此塊的代碼如何通過模塊child_process實現NodeJ中的一個輸入一個輸出
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回讀時,它是一個塊,我編寫代碼來處理這個輸出的查找。然後我發送另一個命令,我又得到另一個命令,我也這樣做。在你的方式,輸出緩衝到一個,然後我必須編寫額外的代碼來根據命令分開輸出,這是不可能和實際的。 – 2014-10-13 10:29:33
如果知道輸出的大小,可以增加流的緩衝區大小,但是如果只發送一個命令,我的代碼將輸出命令的完整結果。不知道你想要什麼... – xShirase 2014-10-13 10:32:35