NodeJS:stdin文本不是egal

时间:2012-07-27 15:52:24

标签: node.js

我使用process.stdin.setEncoding('utf8'); 但是,当我听一个事件'data'时,文字不是一般的。

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

我输入'q'但不显示“ouiiiiiiiii”,文字是q ...但是text === 'q'是假的,为什么?感谢

我认为这是由于编码,但我不知道。

1 个答案:

答案 0 :(得分:0)

首先,在stdin上设置回调之前调用process.stdin.resume()。另外,请确保将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());
 }
});