2012-02-08 2 views
1

Я пишу приложение node.js, и я пытаюсь прочитать ввод с консоли. По какой-то причине, однако, это не соответствует правильному случаю переключения. Вот что у меня есть:пульт ввода не правильный?

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

process.stdin.on('data', function (chunk) { 
    if(typeof chunk == "string") 
     console.log('This should be working!'); 
    switch(chunk) 
    { 
     case '/quit': 
      console.log('Terminating Server...'); 
      process.exit(); 
      break; 
     case '/hi': 
      console.log('Hi Back!'); 
      break; 
     default: 
      console.log('Command not found'); 
      break; 
    } 
}); 

Независимо от того, что я печатаю, я всегда получаю «команда не найдена» и «Это должно работать!». Если кусок является строкой, почему я не могу получить «Привет!» вывод, когда я печатаю «/ hi»?

ответ

4

Кусок закончится LineBreak (например, «\n»), так что просто лишить любой конечные пробелы перед переключением:

process.stdin.on('data', function (chunk) { 
    chunk = chunk.replace(/\s+$/, ''); 
    switch (chunk) { 
    case '/quit': 
     // ... 
+0

удивительным! что отлично работало. Я вытягивал свои волосы, удивляясь, что черная магия удерживает его от работы. – LordZardeck

Смежные вопросы