2012-07-27 6 views
0

사용 process.stdin.setEncoding('utf8'); 그러나 이벤트를 수신 할 때 'data' 텍스트는 egal이 아닙니다.NodeJS : 표준 텍스트가 아닌

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

내가 'Q'를 입력하지만 "ouiiiiiiiii"를 표시하지 않으며, 텍스트 질문입니다 ...하지만 text === 'q'은 거짓이며, 그 이유는 무엇입니까? 덕분에

인코딩 때문인 것 같지만 잘 모르겠습니다.

답변

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()); 
} 
}); 
+0

가'로 .toString() 팀은()'작동과 예, 대단히 감사합니다! –

관련 문제