建立自己的可讀寫流
我們將看到由 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);
}
}