Věci, které lidé dělají s Node.js, považuji za neuvěřitelně zajímavé. Jste zde o lidech, kteří používají Node.js k ovládání dronů, Arduin a řady dalších zařízení. Využil jsem Node.js k vytvoření Roku Remote, projektu, který byl zábavný a jednodušší, než jsem si myslel, že bude. Jedna část tohoto experimentu však byla obtížná: naslouchání úhozům kláves ve stejném prostředí, které spustilo skript.
Postup použití dálkového ovladače je následující:
- Spusťte skript pro připojení k zařízení Roku:
node remote
- Ve stejném prostředí použijte šipky a horké klávesy k procházení Roku
- Stiskněte
CONTROL+C
zabít skript
Následující kód JavaScript je to, co jsem potřeboval použít k naslouchání úhozům ve stejném prostředí, jakmile byl skript spuštěn:
// 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! // ... });
Výše uvedený kód změní váš skript Node.js na aktivní drát pro poslech událostí stisku kláves. S mým Roku Remote předávám události stisku šipky a písmena přímo do Roku přes REST API (úplný kód zde). Líbí se mi, že to díky Node.js bylo tak snadné – další důvod, proč JavaScript vždy vítězí!