如何在nodejs中从标准输入中读取的例子

473 阅读1分钟

有些时候,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 }

总结

你学会了如何从标准输入中读取按键事件并显示出来。