有些时候,Nodejs代码允许监听键盘事件来做一些与硬件或脚本自动化有关的处理。
键盘有不同的事件
Nodejs有一个内置的对象,叫做process,它有stdin ,可以从键盘网络中读取数据流。
Nodejs读取键盘数据并显示给用户
在这个例子中,使用以下方法创建一个stdin对象
var stdin = process.openStdin();
or
var stdin = process.openStdin();
如果你使用的是ES6版本的javascript,你可以用下面的import语句导入。
import process from 'process';
接下来,使用标准输入恢复方法从键盘上读取数据,如下图所示
stdin.resume();
接下来使用data 事件的进程来捕捉按键事件。
这将用stdin流进行初始化
下面是一个代码或nodejs keystrokes example key.js。
var stdin = process.openStdin();
stdin.resume();
stdin.on('data', function (keydata) {
process.stdout.write('output: ' + keydata);
})
这将读取键盘上的字符并输出到控制台。
运行node key.js,得到以下输出
node key.js
testkeystrokes
data:testkeystrokes
nodejs 按键事件从标准输入读取
在这个例子中,每个字符的击键都被读取并显示一个字符和键的元信息。
- 首先,在代码中导入readline模块
- emitKeyPressEvents,从标准输入中读取按键事件
- 设置拉姆模式为真
- 为按键写一个事件,以跟踪按键。
下面是一个nodejs按键事件keypress.js的例子 。
const readlineModule = require('readline');
readlineModule.emitKeypressEvents(process.stdin);
process.stdin.setRawMode(true);
process.stdin.on('keypress', (charater, key) => {
console.log(charater)
console.log(key)
})
运行上述代码的输出是
B:\blog\jswork>node keypress.js
a
{ sequence: 'a', name: 'a', ctrl: false, meta: false, shift: false }
总结
你学会了如何从标准输入中读取按键事件并显示出来。