walkman7
@walkman7

Как правильно сделать Transform Stream?

Здарова!

Есть задача, запилить клас для загрузки файла (nodejs) должен иметь возможность писать и читать файл.

Теория:
var utils = require('utils');
var TransformStream = require('stream').TransformStream;

function WriteReadStream(path, options) {
  TransformStream.call(this);
}

WriteReadStream.prototype._transform = function(chunk, encoding, cb) {
  // что то нужно сделать здесь
};

utils.inherit(WriteReadStream, TransformStream);


Пишем файл:
var file = new WriteReadStream('/tmp/file');
req.pipe(file);


А потом можем и прочитать:
var file = new WriteReadStream('/tmp/file');
file.pipe(res);


Вообще такое возможно? Или для этого нужно 2 дескриптора для записи (fs.createWriteStream) и чтения (fs.createReadStream)?
  • Вопрос задан
  • 2901 просмотр
Пригласить эксперта
Ответы на вопрос 1
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
Не оттуда наследуете, смотрите пример в исходниках ноды в /lib/crypto.js
Например класс Hash так написан, он наследует LazyTransform, вот так: util.inherits(Hash, LazyTransform); потом LazyTransform наследует от stream.Transform вот так: util.inherits(LazyTransform, stream.Transform); и потом определен метод _transform
Hash.prototype._transform = function(chunk, encoding, callback) {
  this._binding.update(chunk, encoding);
  callback();
};
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы