带有按键的Node.js Raw模式

发布于:2021-02-09 09:30:59

0

216

0

Nodejs Raw模式 程序员

我发现程序员使用Node.js所做的事情非常有趣。在这里,您将了解使用Node.js来控制无人机,Arduino和许多其他设备的程序员。我利用Node.js创建了一个Roku Remote,这个项目比我想象的要有趣和容易。但是,该实验中有一个很困难:在执行脚本的同一shell中侦听击键。

使用遥控器的过程如下:

  1. 执行脚本以连接到Roku:  node remote

  2. 在同一外壳中,使用箭头键和热键导航Roku

  3. 按下CONTROL+C 以杀死脚本

脚本启动后,我需要使用以下JavaScript代码来侦听同一外壳中的击键:

// Readline lets us tap into the process events
const readline = require('readline');

// Allows us to listen for events from stdin
readline.emitKeypressEvents(process.stdin);

// Raw mode gets rid of standard keypress events and other
// functionality Node.js adds by default
process.stdin.setRawMode(true);


// Start the keypress listener for the process
process.stdin.on('keypress', (str, key) => {

   // "Raw" mode so we must do our own kill switch
   if(key.sequence === 'u0003') {
       process.exit();
   }

   // User has triggered a keypress, now do whatever we want!
   // ...

});

上面的代码将您的Node.js脚本变成了一个活跃的线路,用于监听按键事件。使用Roku Remote,我通过REST API(此处为完整代码)将箭头和字母按键事件直接传递给Roku 。我喜欢Node.js使其变得如此简单-JavaScript始终获胜的另一个原因!