我最近从0.8~更新到最新版本的Node.js(1.10~),我在运行时收到一条消息说:
util.pump() is deprecated. Use readableStream.pipe() instead.
我试图将我的函数切换为readsStream.pipe(),但我认为它的工作原理并不相同。
所以我有三个问题:
以下是我正在使用它的代码(带胡子)
var stream = mu.compileAndRender(template_file, json_object_from_db);
util.pump(stream, res);
当我用readableStream.pipe替换util.pump时,我收到此错误:
ReferenceError: readableStream is not defined
任何人都可以帮我指出正确的方向吗?
答案 0 :(得分:11)
好的,所以经过一些实验后这个问题很简单(尽管文档是空的)。
基本上,readableStream只是一个你应该用你的流替换的变量。所以在我的情况下,答案是:
stream.pipe(res);
你只需要用流替换util。容易发脾气。
答案 1 :(得分:2)
我认为以下链接对您的工作有所帮助! 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
});
答案 2 :(得分: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);