Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 自定义流对象?(nodejs)_Node.js - Fatal编程技术网

Node.js 自定义流对象?(nodejs)

Node.js 自定义流对象?(nodejs),node.js,Node.js,是否可以扩展/初始化require('stream')。流;对象我希望能够创建一个流对象,可以将数据推送到其中,并在新数据到达时通知所有侦听器 我尝试了以下方法: var stream = require('stream'); var test = new stream.Stream(); test.write(new Buffer('mads')); 但我得到了以下错误: TypeError: Object [object Object] has no method 'write'

是否可以扩展/初始化require('stream')。流;对象我希望能够创建一个流对象,可以将数据推送到其中,并在新数据到达时通知所有侦听器

我尝试了以下方法:

var stream = require('stream');
var test = new stream.Stream();
test.write(new Buffer('mads'));
但我得到了以下错误:

TypeError: Object [object Object] has no method 'write'
    at repl:1:6
    at Interface.<anonymous> (repl.js:168:22)
    at Interface.emit (events.js:67:17)
    at Interface._onLine (readline.js:153:10)
    at Interface._line (readline.js:408:8)
    at Interface._ttyWrite (readline.js:585:14)
    at ReadStream.<anonymous> (readline.js:73:12)
    at ReadStream.emit (events.js:88:20)
    at ReadStream._emitKey (tty_posix.js:306:10)
    at ReadStream.onData (tty_posix.js:69:12)
    at ReadStream.emit (events.js:67:17)
TypeError:Object[Object]没有方法“write”
回复:1:6
在接口处。(回复js:168:22)
在Interface.emit(events.js:67:17)
在接口处在线(readline.js:153:10)
在接口处。\u行(readline.js:408:8)
在接口处写入(readline.js:585:14)
在ReadStream。(readline.js:73:12)
在ReadStream.emit(events.js:88:20)
在ReadStream._emitKey(tty_posix.js:306:10)
在ReadStream.onData(tty_posix.js:69:12)
在ReadStream.emit(events.js:67:17)

您必须自己创建这些方法,并将
可写
属性设置为true,并且不要忘记
发出您覆盖的那些方法中的事件,以便将其用作常规事件发射器。查看更多信息。

对于今天偶然发现这个问题的任何人(节点v0.10.x),这可以通过使用streams2引入的流轻松实现

var stream = require('stream');
var test = stream.PassThrough();
test.write('mads');
test.end();

我想为子进程使用诸如
stdout
stderr
这样的自定义流。但是它说的stdio stream:[object]
的值不正确。这里可能有什么问题?@Сааааааааа同样的问题。您找到解决方案了吗?我实际上想将
子进程的输出重定向到一个文件,但它应该由子进程自己决定(不像父进程在
生成时打开fd并传递它)。我想不出来,所以只能在parent中打开fd。