替换Node.js中的util.pump()

Replacing util.pump() in Node.js

本文关键字:pump util 中的 Node js 替换      更新时间:2023-09-26

我最近从0.8~更新到最新版本的Node.js(1.10~),并且我在运行时一直收到消息说:

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

我试着把我的函数改成readableStream.pipe(),但我不认为它的工作原理是一样的。

我有三个问题:

  1. 为什么是util。泵不赞成吗?
  2. 我如何切换到readableStream.pipe()?或3。如何关闭此警告?

这是我使用它的代码(与小胡子)

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

当我替换util时。泵与readableStream。管道,我得到这个错误:

ReferenceError: readableStream is not defined
谁能给我指个正确的方向?

好了,在进行了更多的实验之后,这个问题很容易得到答案(尽管文档是空的)。

基本上,readableStream只是一个变量,你应该替换为你的流。所以在我的例子中,答案是:

stream.pipe(res);

你只需要用流替换util。容易peezy。

我想下面的链接对你的工作有帮助!https://groups.google.com/forum/!味精/nodejs YWQ1sRoXOdI/3 vdqotazbqqj


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
});

您可以查看此链接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);