写入node.js中的process.stdin并parsing行的最佳方法是?
我在MEAN堆栈proggraming,所以我有我的app.js,我想build立一个进程,将采取命令从它运行的shell(process.stdin)
目前我已经尝试过:
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.question('What do you think of Node.js? ', (answer) => { // TODO: Log the answer in a database console.log(`Thank you for your valuable feedback: ${answer}`); rl.close(); });
但它写入我的input两次,退出1行后。
我需要一个循环读取函数,并从我那里接受无限的命令。
我怎么才能得到它 ?
它由于以下原因而退出:
rl.close();
如果您想使用readline交互式逐行阅读:
rl.on('line', (line) => { // use line here });
另一种方式对于交互性较差的工作stream程可能比较方便,但仍可用于交互式工作
const filt = require('filt'); filt((line) => { // use line here });
第二个例子使用了filt
模块(免责声明:我是该模块的作者)。