创建自己的可读写流
我们将看到由 fs 等模块返回的流对象,但是如果我们想要创建自己的可流传输对象呢?
要创建 Stream 对象,我们需要使用 NodeJs 提供的流模块
var fs = require("fs");
var stream = require("stream").Writable;
/*
* Implementing the write function in writable stream class.
* This is the function which will be used when other stream is piped into this
* writable stream.
*/
stream.prototype._write = function(chunk, data){
console.log(data);
}
var customStream = new stream();
fs.createReadStream("am1.js").pipe(customStream);
这将为我们提供自己的自定义可写流。我们可以在 _write 函数中实现任何东西。上面的方法适用于 NodeJs 4.xx 版本但在 NodeJs 6.x ES6 中引入了类,因此语法已经改变。下面是 6.J 版 NodeJ 的代码
const Writable = require('stream').Writable;
class MyWritable extends Writable {
constructor(options) {
super(options);
}
_write(chunk, encoding, callback) {
console.log(chunk);
}
}