立即在Mac上的CLI中注册击键

我想用nodejs编程一个小的CLI应用程序。

我想要一个特定的string来logging,取决于哪个箭头键被抚摸。 我尝试了一些缺陷的按键库。 ![在这里input图片描述] [1]

首先,我需要在注册按键之前按“Enter”键。 另外,当按下箭头键时,CLI显示随机字符。

process.stdin.on('keypress', function (ch, key) { if (key.ctrl && key.name == 'c') { process.stdin.pause(); } else { console.log('test!'); } }); 

产量

 ^[[A test! ^[[B test! ^[[C test! 

任何想法如何做得更好?

我发现了一个更好的select,开箱即用:

 var stdin = process.stdin; stdin.setRawMode(true); stdin.resume(); stdin.setEncoding('utf8'); stdin.on('data', function(key){ if (key == '\u001B\u005B\u0041') { process.stdout.write('up'); } if (key == '\u001B\u005B\u0043') { process.stdout.write('right'); } if (key == '\u001B\u005B\u0042') { process.stdout.write('down'); } if (key == '\u001B\u005B\u0044') { process.stdout.write('left'); } if (key == '\u0003') { process.exit(); } // ctrl-c });