没有触发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()来使用它。