【发布时间】:2015-05-10 20:58:32
【问题描述】:
我正在使用 nodeJS,我希望能够通过标准输入向它传递命令。为此,我正在使用 process.stdin。理想情况下,我会有一个带有各种命令字符串(如“load”或“stop”)的巨型开关,但我无法进行比较。我尝试过切出换行符、转换为字符串等。虽然它看起来应该相当简单,但无法弄清楚。
以下是我一直在尝试的代码:
process.stdin.setEncoding('utf8');
process.stdin.on('readable', function() {
var chunk = process.stdin.read();
if(chunk === null)
return;
//i've tried this as well, to no avail
//chunk = chunk.toString();
if(chunk == "expectedinput")
console.log("got it!");
process.stdout.write('data: ' + chunk);
});
【问题讨论】:
-
您实际上是在写信给
stdin还是“load”和“stop”实际上是命令行参数?如果您实际上是在写标准输入并且您想提供一种“提示”界面,您可以考虑使用内置的readline模块来帮助解决这个问题。 -
这将从标准输入读取以允许在程序启动后运行命令,因此 args 不适合。我会研究 readline,但我很好奇为什么我当前的解决方案不起作用。