控制台输入不正确?

时间:2012-02-08 20:16:43

标签: node.js

我正在编写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”时输出?

1 个答案:

答案 0 :(得分:4)

块将以换行符结束(例如“\n”),因此在切换之前只删除任何尾随空格:

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