SORU
15 ŞUBAT 2011, Salı


okumayı nodejs standart girdiden tuş vuruşlarını

Nodejs çalışan bir komut dosyası içinde gelen tuş vuruşlarını dinlemek mümkün mü? Eğer 'data' olayını process.openStdin() ve dinle o zaman kullanırsam giriş gibi bir sonraki satır kadar tamponlu,:

// stdin_test.js
var stdin = process.openStdin();
stdin.on('data', function(chunk) { console.log("Got chunk: "   chunk); });

Bu çalışan, anlıyorum:

$ node stdin_test.js
                <-- type '1'
                <-- type '2'
                <-- hit enter
Got chunk: 12

İstiyorum ne olduğunu görmek için

$ node stdin_test.js
                <-- type '1' (without hitting enter yet)
 Got chunk: 1

Bir nodejs, örneğin, getc in ruby eşdeğer arıyorum

Bu mümkün mü?

CEVAP
20 EYLÜL 2012, PERŞEMBE


Bu yeteneği tty, şeritli beri bu cevabı bulmak için buraya standart girdiden ham karakter bir akış almak için nasıl:

var stdin = process.stdin;

// without this, we would only get streams once enter is pressed
stdin.setRawMode( true );

// resume stdin in the parent process (node app won't quit all by itself
// unless an error or process.exit() happens)
stdin.resume();

// i don't want binary, do you?
stdin.setEncoding( 'utf8' );

// on any data into stdin
stdin.on( 'data', function( key ){
  // ctrl-c ( end of text )
  if ( key === '\u0003' ) {
    process.exit();
  }
  // write the key to stdout all normal like
  process.stdout.write( key );
});

oldukça basit, temelde sadece process.stdin's documentation gibi ama setRawMode( true ) belgelerinde tanımlamak için daha zor olan doğal bir akış elde etmek için kullanarak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ghosti66

    ghosti66

    27 AĞUSTOS 2006
  • Jimmie Jones

    Jimmie Jones

    16 Kasım 2007
  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011