javascript - 在 Node.js 中写入 process.stdin 并解析该行的最佳方法?

标签 javascript node.js process

我正在 MEAN 堆栈中编程,所以我有我的 app.js,并且我想构建一个进程,该进程将从其运行的 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();
});

但它会将我的输入写入两次并在 1 行后退出。
我需要一个 readline 函数,它将循环并从我这里获取无限命令。
我怎么才能得到它 ?

最佳答案

它退出的原因是:

rl.close();

如果您想使用 readline 交互式地逐行读取:

rl.on('line', (line) => {
  // use line here
});

另一种方法对于交互性较低的工作流程可能很方便,但仍然适用于交互性:

const filt = require('filt');
filt((line) => {
  // use line here
});

第二个示例使用 filt模块(免责声明:我是该模块的作者)。

关于javascript - 在 Node.js 中写入 process.stdin 并解析该行的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43975249/

相关文章:

javascript - 在添加到文档之前,Javascript/jQuery DOM 创建是否安全?

javascript - 如何获取前台进程/窗口的标题

javascript - socket.io 硬编码与动态连接 url

javascript - react 组件 - 在调整 react 元素的大小时更改子内容(当宽度变窄时) - 而不是通过固定断点的窗口大小

Javascript forEach() 跳过项目

javascript - NodeJs - 检查子进程是否成功启动

c# - C# 中 EXIT_SUCCESS 和 EXIT_FAILURE 的等价物是什么?

c# - Process.Start() : The system cannot find the file specified, 但我的文件路径似乎是合法的

javascript - mmenu.jquery 滑出菜单阻止 adsense 显示

node.js - 如果提供了字符串,Mongoose bool 验证没有用