我正在使用nodeJS,我希望能够通过stdin传递命令。要做到这一点,我正在使用process.stdin。理想情况下,我有一个巨大的开关,有各种命令字符串,如“加载”或“停止”,但我不能让比较工作。我已经尝试过切换换行符,转换为字符串等等。虽然它看起来应该相当简单,但是无法解决这个问题。
以下是我一直试图开始工作的代码:
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);
});
答案 0 :(得分:2)
通常,如果要从stdin读取换行符分隔的输入,最简单的方法是使用内置的readline
模块。
但是对于原始代码,问题很可能是输入的分块和/或新行也被捕获,因此您最终必须将其剥离或将条件更改为{ {1}}(假设您已经缓冲了足够的输入数据以查看换行符)。