2014-06-20 67 views
0

我想基本上是管兩個命令行命令組合在一起,但我清楚地失去了一些東西:不知道爲什麼Node.js的管掛

var child = require('child_process'); 

var image_bin = child.spawn('cat', ['./t.jpg']); 
var image_txt = child.spawn('openssl', ['base64']); 

image_txt.on('pipe', function(src) { 
    console.error('something is piping into the writer'); 
}); 

image_bin.stdout.pipe(image_txt.stdout); 

任何想法?

+2

您將'stdout'重定向到'stdout'?它不會工作:) –

+0

謝謝@IvanGrynko,那是我嘗試的最後一件事。 image_bin.stdout.pipe(image_txt.stdin);還掛着,是你在想什麼會工作? – socketwiz

+0

你想只是base64編碼圖像? – dylants

回答

0

謝謝@IvanGrynko和@dylants。我明確需要將stdout更改爲stdin。 @dylants我嘗試了在stdin,stderr和stdout上查找錯誤的不同變體,但沒有看到任何變體。但是,當我開始監視標準輸出數據時,事情就開始奏效。當我想到它時,我想這是有道理的。如果你實際上沒有對數據做任何事情,我想它會阻止。這是我想出來的:

var child = require('child_process'); 

var image_bin = child.spawn('cat', ['./t.jpg']); 
var image_txt = child.spawn('openssl', ['base64']); 

image_txt.stdout.on('data', function (data) { 
    process.stdout.write(data.toString()); 
}); 

image_bin.stdout.pipe(image_txt.stdin); 
相關問題