我使用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'
是假的,为什么?感谢
我认为这是由于编码,但我不知道。
答案 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());
}
});