本文介绍了node.js如何从stdin中读取击键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以在正在运行的nodejs脚本中侦听传入的击键?如果我使用process.openStdin()
并监听其'data'
事件,则输入将被缓冲到下一个换行符,如下所示:
Is it possible to listen for incoming keystrokes in a running nodejs script?If I use process.openStdin()
and listen to its 'data'
event then the input is buffered until the next newline, like so:
// stdin_test.js
var stdin = process.openStdin();
stdin.on('data', function(chunk) { console.log("Got chunk: " + chunk); });
运行这个,我得到:
$ node stdin_test.js
<-- type '1'
<-- type '2'
<-- hit enter
Got chunk: 12
我想看的是
$ node stdin_test.js
<-- type '1' (without hitting enter yet)
Got chunk: 1
我正在寻找与 getc
红宝石
I'm looking for a nodejs equivalent to, e.g., getc
in ruby
这可能吗?
推荐答案
如果您切换到原始模式,则可以通过以下方式实现:
var stdin = process.openStdin();
require('tty').setRawMode(true);
stdin.on('keypress', function (chunk, key) {
process.stdout.write('Get Chunk: ' + chunk + '\n');
if (key && key.ctrl && key.name == 'c') process.exit();
});
这篇关于node.js如何从stdin中读取击键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!