0

私は使用しますがprocess.stdin.setEncoding('utf8'); 、イベントを聞くとき'data'、テキストはegalではありません。

process.stdin.on('data', function (text) {
  if (text === 'q') console.log('ouiiiiiiiiii');
  else console.log(text);
});

「q」と入力しましたが、「ouiiiiiiiii」が表示されず、テキストはq ...ですが、これtext === 'q'はfalseです。なぜですか?ありがとう

エンコーディングのせいだと思いますが、わかりません。

4

1 に答える 1

0

まず、process.stdin.resume()stdinでコールバックを設定する前に呼び出します。また、変数はオブジェクトtextだと思うので、必ず文字列に変換してください。Buffer

したがって、次のようなものが機能するはずです。

process.stdin.resume();
process.stdin.setEncoding('utf8');

process.stdin.on('data', function (text) {
 if (text.toString().trim() === 'q') {
   console.log('ouiiiiiiiiii');
 } else {
   console.log(text.toString());
 }
});
于 2012-07-27T16:10:18.617 に答える