NodeJS でストリームがどのように機能するかを理解するのに助けが必要です
UNIXプロセスを呼び出すモジュールを作成する必要があり(を使用) 、このプロセスのを読み取り可能なストリームspawn
にリダイレクトしたいと考えています。stdout
exports
この動作をReadable Streamにしたいので、別のモジュールがそれらを読み取れるようにします。
これを行うために、私は小さなコードを書きました:
var spawn = require('child_process').spawn
var Duplex = require('stream').Duplex;
var stream = new Duplex;
var start = function() {
ps = spawn('mycmd', [/*... args ...*/]);
ps.stdout.pipe(stream);
};
exports.stream = stream;
exports.start = start;
しかし、このモジュールを使用すると、ストリームが _read メソッドを実装していないという例外がスローされます。
この問題で私を助けてくれますか?
前もって感謝します。
[編集] Stream オブジェクトを作成するソリューションを試しましたが、うまくいきません。コードは次のとおりです。
var spawn = require('child_process').spawn;
var Stream = require('stream');
var ps = null;
var audio = new Stream;
audio.readable = audio.writable = true;
var start = function() {
if(ps == null) {
ps = spawn('mycmd', []);
ps.stdout.pipe(stream);
}
};
var stop = function() {
if(ps) {
ps.kill();
ps = null;
}
};
exports.stream = stream;
exports.start = start;
exports.stop = stop;
しかし、ストリームをリッスンしようとすると、新しいエラーが発生します:
_stream_readable.js:583
var written = dest.write(chunk);
^
TypeError: Object #<Stream> has no method 'write'