Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8898

Node.jsでキー入力を検知する

$
0
0

概要

Node.jsアプリケーションを単体で動かしている時に、押されたキー情報を取得する方法

背景

Node.jsアプリケーションを単体で動かしている場合(コンソールから制御)において、キーの押下をトリガーにキーの状態そのものを取得する方法として, readlineがFirebaseと一緒に使えなかったり、ffiパッケージが入らなかったため。

実装手順

1.npm install keypressでパッケージを導入

今回は keypress - npmを利用します。
ターミナルで下記コマンドを入力してください。

npm install keypress

2. 使ってみる

以外、殆どが公式npmページからのコピペですが、少し補足をしています。

varkeypress=require('keypress');// make `process.stdin` begin emitting "keypress" eventskeypress(process.stdin);// listen for the "keypress" eventprocess.stdin.on('keypress',function(ch,key){console.log('got "keypress"',key); //Ctrl + c入力のときの処理if(key&&key.ctrl&&key.name=='c'){process.stdin.pause();//強制終了するなら process.stdin.exit();}});process.stdin.setRawMode(true);process.stdin.resume();

ご覧の通り、key.nameでキーの名前の取得が出来たり,key.”any key”(上の例だとkey.ctrl)でctrlやshiftが押されているかどうかの判定もできるようです。

最後に

Node.jsの経験がほとんどなく、なんならサーバーサイドの経験がnullに近い状態だったので色々大変でした。
でもこうして触っていると色々できるなぁと思うこともあり、ニコ生コメでLチカさせてみたり、ニコ生コメントではちゅねにネギを振らせてみたりして遊べて色々楽しいなとか思い始めました。今後、もう少し本格的にサーバーサイドもやってみたいなと思います。

もし、不備、誤記、もっといい方法があるよ! などございましたらお気軽にお申し付けください。

参考文献

keypress - npm


Viewing all articles
Browse latest Browse all 8898

Trending Articles