2012-02-08 41 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 Back!」輸入「/ hi」時輸出?

回答

4

的塊將與斷行(例如,「\n」)結束,所以在切換之前剛剛剝離任何尾隨空白:

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

真棒!那完美的工作。我揪出我的頭髮,想知道什麼黑魔法讓它不能工作。 – LordZardeck 2012-02-08 20:25:20