How to capture the arrow keys in node.js

前端 未结 5 1180
南旧
南旧 2020-12-29 05:57

What is the utf8 code for all four arrow keys (up down left right)?

I am learning node.js and I am trying to detect whenever these keys are being pressed.

He

5条回答
  •  难免孤独
    2020-12-29 06:37

    You can use keypress package. Trying the example given on the page.

    var keypress = require('keypress');
    
    // make `process.stdin` begin emitting "keypress" events
    keypress(process.stdin);
    
    // listen for the "keypress" event
    process.stdin.on('keypress', function (ch, key) {
      console.log('got "keypress"', key);
      if (key && key.ctrl && key.name == 'c') {
        process.stdin.pause();
      }
    });
    
    process.stdin.setRawMode(true);
    process.stdin.resume();
    

    You get the UTF-8 values of arrow keys at sequence.

    > process.stdin.resume();got "keypress" { name: 'up',
      ctrl: false,
      meta: false,
      shift: false,
      sequence: '\u001b[A',
      code: '[A' }
    > got "keypress" { name: 'down',
      ctrl: false,
      meta: false,
      shift: false,
      sequence: '\u001b[B',
      code: '[B' }
    got "keypress" { name: 'right',
      ctrl: false,
      meta: false,
      shift: false,
      sequence: '\u001b[C',
      code: '[C' }
    got "keypress" { name: 'left',
      ctrl: false,
      meta: false,
      shift: false,
      sequence: '\u001b[D',
      code: '[D' }
    

提交回复
热议问题