node.js - 是否可以监视终端的特定输出?
问题描述
我正在使用 NodeJS 通过命令行运行 webbots,并将标准输出重定向到节点终端。我的问题是我想根据控制台日志触发事件。我尝试将命令的标准输出重定向到另一个文件,但这似乎不起作用。
这是控制台输出
INFO: sumo_example_two: Starting controller: python.exe -u sumo_example_two.py
INFO: sumo_supervisor: Starting controller: python.exe -u sumo_supervisor.py
robot2
INFO: sumo_example_one: Terminating.
INFO: sumo_example_two: Terminating.
INFO: sumo_supervisor: Terminating.
stdout:
我想提取'robot2'。
解决方案
我刚刚测试过,以下代码段对我来说很好:
const { spawn } = require('child_process');
const ls = spawn('webots', ['--stdout']);
ls.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
// Process `data` as you prefer, something like
//
// if (data.includes('robot2')) {
// something()
// }
});
推荐阅读
- python - 在 TensorFlow 中从 CSV 文件加载大型数据集
- python - Pandas 根据另一列将列值转换为不同的列
- c++ - 发件人对象名称不存在 | QT & CPP
- github - GitHub PAT 可以跨组织使用吗?
- c - 将冒泡排序从 C 移植到 Rust 时性能严重下降
- java - 如何重用 Spring Kafka 代码来设置多个监听器?
- r - 计数观测值时设置固定值
- c++ - 为什么 ((*i)->getFirstName()) 工作,而不是 *i->getFirstName() 或 Employee[*i]getFirstName()?
- awk - 如何让 gawk 将我的数据转换为 csv 文件
- unity3d - 试图让我的相机坐在角色后面