未加星标

Node.js Raw Mode with Keystrokes

字体大小 | |
[前端(javascript) 所属分类 前端(javascript) | 发布者 店小二05 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏

I find the stuff that people aredoing with Node.js incredibly interesting. You here about people using Node.js to control drones,Arduinos, and a host of other devices. I took advantage of Node.js to create a Roku Remote , a projectthat was fun and easier than I thought it would be. There was one piece of this experiment that was difficult, however: listening for keystrokes within the same shell thatexecuted the script.

The process for using the remote is as follows:

Execute thescript to connect to your Roku: node remote In the same shell, use arrow keys and hot keys to navigate the Roku Press CONTROL+C to kill the script

The following javascript code is what I needed to use to both listen for keystrokes within the same shell once the script had been started:

// 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!
// ...
});

The code above turns yourNode.js script into anactive wire for listening to keypress events. With my Roku Remote, I pass arrow and letter keypress events directly to the Roku via a REST API (full code here). I love that Node.js made this so easy -- another reason JavaScript always wins!

本文前端(javascript)相关术语:javascript是什么意思 javascript下载 javascript权威指南 javascript基础教程 javascript 正则表达式 javascript设计模式 javascript高级程序设计 精通javascript javascript教程

主题: Node.jsJavaScriptJavaRESTArduino
分页:12
转载请注明
本文标题:Node.js Raw Mode with Keystrokes
本站链接:http://www.codesec.net/view/484844.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 前端(javascript) | 评论(0) | 阅读(21)