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.stdin流。
答案 0 :(得分:1)
如果您尝试捕获键入的内容,请尝试以下步骤
process.stdin.resume();
process.stdin在暂停状态下启动。您需要将其置于就绪状态。 监听'data'事件以捕获在控制台中输入的数据。
process.stdin.on('data', function(data) {
console.log(data.toString());
});
我不确定这是否有助于你的实际问题。至少它可以为你提供一些见解。
其他信息:
readable
事件在Node.js v0.9.4中引入。因此请检查您使用的节点是否为gte 0.9.4。
来自节点api docs的注释:
如果使用setEncoding(),'data'事件会发出Buffer(默认情况下)或字符串。
请注意,添加“数据”事件侦听器会将可读流切换为“旧模式”,其中数据一旦可用就会发出,而不是等待您调用read()来使用它。