2012-02-08 21 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; 
    } 
}); 

、私は常に「コマンドが見つかりません」とget「これは作業しなければなりませんの!」。チャンクが文字列の場合、なぜ「こんにちは!」を得ることができないのですか? "/ hi"と入力すると出力されますか?

答えて

4

チャンクはこれだけ切り替える前に、任意の末尾の空白を取り除き、改行(例えば「\n」)で終了します:

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

素晴らしいです!それは完璧に働いた。私は黒い魔法がそれを働かせていたのか疑問に思って髪を引っ張っていた。 – LordZardeck

関連する問題