不使用data
事件,我希望此代码记录每个键的unicode引用,因为我按下它。我无法理解为什么我每次都会Null
。
每当我按下键盘上的一个键时,我就会在process.stdin
上发出一个可读事件,运行一个回调,允许我从这个可读流中读取数据。那么为什么它不能从我的按键中获取任何数据呢?
// nodo.js
function nodo() {
var stdin = process.stdin;
var stdout = process.stdout;
if (stdin.isTTY) {
stdin.setRawMode(true);
stdin.setEncoding('utf8');
stdin.resume();
stdout.write('\u000A>Bienvenido\u000A');
} else {
process.exit();
}
stdin.on('readable', function(){
var input = stdin.read();
console.log(input);
});
}
nodo();
感谢您的关注。
答案 0 :(得分:1)
请阅读that document
这解释了如何正确处理process.stdin
。你的错误是使用stdin.resume
在进程stdin流上启用“旧”兼容模式。
// nodo.js
function nodo() {
var stdin = process.stdin;
var stdout = process.stdout;
if (stdin.isTTY) {
stdin.setRawMode(true);
stdin.setEncoding('utf8');
stdout.write('\u000A>Bienvenido\u000A');
process.stdin.setEncoding('utf8');
process.stdin.on('readable', function() {
var chunk = process.stdin.read();
if (chunk !== null) {
process.stdout.write('data: ' + chunk);
}
});
process.stdin.on('end', function() {
process.stdout.write('end');
});
} else {
process.exit();
}
}
nodo();