我遇到了一个关于在Nodejs中将缓冲区转换为流的问题.这是代码:
var fs = require('fs');
var b = Buffer([80,80,80,80]);
var readStream = fs.createReadStream({path:b});
Run Code Online (Sandbox Code Playgroud)
该代码引发异常:
TypeError: path must be a string or Buffer
Run Code Online (Sandbox Code Playgroud)
然而,Nodejs的文档说fs.createReadStream()可以接受Buffer.
fs.createReadStream(path [,options])
path <string> | <缓冲区> | <URL>
选项<string> | <对象>
有人可以回答这个问题吗?非常感谢!
аle*_*kyі 12
NodeJS 8+版本 将缓冲区转换为流
const { Readable } = require('stream');
/**
* @param binary Buffer
* returns readableInstanceStream Readable
*/
function bufferToStream(binary) {
const readableInstanceStream = new Readable({
read() {
this.push(binary);
this.push(null);
}
});
return readableInstanceStream;
}
Run Code Online (Sandbox Code Playgroud)
节点 0.10 +
将缓冲区转换为流
var Readable = require('stream').Readable;
function bufferToStream(buffer) {
var stream = new Readable();
stream.push(buffer);
stream.push(null);
return stream;
}
Run Code Online (Sandbox Code Playgroud)