replaceNode.js中的util.pump()

我最近更新到0.8〜的最新版本的Node.js(1.10〜),运行时我收到一条消息:

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

我试图切换我的函数来说可读性(。),但我不认为它的工作是一样的。

所以我有三个问题:

  1. util.pump为什么不推荐使用?
  2. 如何切换到readableStream.pipe()? 或者3.如何closures此警告?

这里是我使用它的代码(有胡子

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

当我用readableStream.pipereplaceutil.pump时,我得到这个错误:

 ReferenceError: readableStream is not defined 

任何人都可以帮助我指出正确的方向吗?

       

网上收集的解决方案 "replaceNode.js中的util.pump()"

好吧,所以这个问题是一个相当简单的答案,经过一些更多的实验(尽pipe文档为空)。

基本上,可读stream只是一个variables,你应该用你的stream代替。 所以在我的情况下,答案是:

 stream.pipe(res); 

基本上,你只是用util来代替util。 很轻松。

你可以看这个链接http://nodejs.cn/api/stream.html
只要在可读stream上调用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); 

我想下面的链接将有助于你的工作! 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 });