没有触发nodejs stdin可读的事件

readable事件不会在process.stdin被触发

test.js

 var self = process.stdin, data ; self.on('readable', function() { var chunk = this.read(); if (chunk === null) { handleArguments(); } else { data += chunk; } }); self.on('end', function() { console.log("end event",data ) }); 

然后,当我做node test.js并开始在控制台中键入, readable事件根本不会被触发。

请告诉我如何将readable侦听器附加到process.stdinstream。

如果您试图捕获您键入的内容,请尝试以下步骤,

 process.stdin.resume(); 

process.stdin以暂停状态启动。您需要将其置于就绪状态。 监听“数据”事件以捕获控制台中键入的数据。

 process.stdin.on('data', function(data) { console.log(data.toString()); }); 

我不确定这是否有助于你的实际问题。希望至less能给你一些见解。

附加信息:

readable事件在Node.js v0.9.4中引入。 所以检查你使用的节点是否是0.9.4。

注意节点api文档:

如果使用了setEncoding(),'data'事件会发出Buffer(默认)或者一个string。

请注意,添加“数据”事件侦听器会将可读stream切换为“旧模式”,在这种模式下数据会在可用时立即发出,而不是等待您调用read()来使用它。