replaceNode.js中的util.pump()
我最近更新到0.8〜的最新版本的Node.js(1.10〜),运行时我收到一条消息:
util.pump() is deprecated. Use readableStream.pipe() instead.
我试图切换我的函数来说可读性(。),但我不认为它的工作是一样的。
所以我有三个问题:
- util.pump为什么不推荐使用?
- 如何切换到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
任何人都可以帮助我指出正确的方向吗?
好吧,所以这个问题是一个相当简单的答案,经过一些更多的实验(尽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 });