我正在编写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”时输出?
答案 0 :(得分:4)
块将以换行符结束(例如“\n
”),因此在切换之前只删除任何尾随空格:
process.stdin.on('data', function (chunk) {
chunk = chunk.replace(/\s+$/, '');
switch (chunk) {
case '/quit':
// ...