2013-05-05 35 views
4
更換util.pump()

我最近更新到0.8〜最新版本的Node.js的(1.10〜),並運行時,說我已經得到的消息:在Node.js的

util.pump() is deprecated. Use readableStream.pipe() instead. 

我試圖切換我的函數來說,只能說readStream.pipe(),但我不認爲它的工作原理是一樣的。

所以我有三個問題:

  1. 爲什麼util.pump過時?
  2. 如何切換到readableStream.pipe()? 或3.如何關閉此警告?

這裏是我使用它(與鬍子)

var stream = mu.compileAndRender(template_file, json_object_from_db); 
     util.pump(stream, res); 

當我更換util.pump與readableStream.pipe其中的代碼,我得到這個錯誤:

ReferenceError: readableStream is not defined 

任何人都可以幫助我指出正確的方向嗎?

回答

11

好的,所以這個問題在一些更多的實驗(儘管文檔爲空)後是一個非常簡單的答案。

基本上,readableStream只是一個你應該用你的流代替的變量。所以在我的情況下,答案是:

stream.pipe(res); 

你只是用util替換util,基本上,與流。輕鬆愜意。

+0

請標記爲正確。 – user568109 2013-05-05 06:42:14

+0

@ user568109我會的,我只需要等一天,直到SO允許我。希望這有助於! – streetlight 2013-05-05 17:47:29

+0

@ user568109標記! – streetlight 2013-05-07 11:30:56

0

我想下面的鏈接將有助於您的工作! https://groups.google.com/forum/#!msg/nodejs/YWQ1sRoXOdI/3vDqoTazbQQJ


var readS = fs.createReadStream("fileA.txt"); 
var writeS = fs.createWriteStream("fileB.txt"); 
util.pump(readS, writeS, function(error) 
    // Operation done 
}); 

=====>

var readS = fs.createReadStream("fileA.txt"); 
var writeS = fs.createWriteStream("fileB.txt"); 
readS.pipe(writeS); 

readS.on("end", function() { 
    // Operation done 
}); 
1

您可以查看此鏈接http://nodejs.cn/api/stream.html
此被髮射每當stream.pipe()方法被調用上的可讀流,將此可寫入添加到其目標集。

var writer = getWritableStreamSomehow(); 
var reader = getReadableStreamSomehow(); 
writer.on('pipe', (src) => { 
console.error('something is piping into the writer'); 
assert.equal(src, reader); 
}); 
reader.pipe(writer);