如何从 child_process 标准输出中检索对象?
How to retrieve object from child_process stdout?
我想 运行 一些 process
在与 Node
服务器不同的实例上。我尝试使用 child_process,我创建了一些循环并执行了 child_process
。
从 child_process,我检索为 Buffer
和对象格式如下。
{ data: [], status: 'active', success: true }
我应该如何获取这些数据作为对象格式?
const child = spawn('node', ['app.js']);
child.stdout.on('data', (data) => {
// How can I apply filter over to ignore some data
console.log(data) // print buffer
console.log(data.toString()) // print some stringify Obj
});
除了console.log
,我们可以从app.js
发送child_process
的数据吗?
如果 app.js 是节点脚本,则很容易将数据发送给调用者(反之亦然),例如:
index.js
const child_process = require('child_process');
const appInstance = child_process.fork('app.js', [], {});
appInstance.on('message', message => {
console.log('Message from app.js:', message, JSON.stringify(message));
});
app.js
// Send some data to caller.
const data = { status: 'ok', message: 'hello from app.js' };
if (process.send) {
process.send(data);
}
如果你想过滤,有很多方法可以做到这一点。在消息处理程序中,您可以打开 message 对象,例如如果(消息 && message.status)。
我想 运行 一些 process
在与 Node
服务器不同的实例上。我尝试使用 child_process,我创建了一些循环并执行了 child_process
。
从 child_process,我检索为 Buffer
和对象格式如下。
{ data: [], status: 'active', success: true }
我应该如何获取这些数据作为对象格式?
const child = spawn('node', ['app.js']);
child.stdout.on('data', (data) => {
// How can I apply filter over to ignore some data
console.log(data) // print buffer
console.log(data.toString()) // print some stringify Obj
});
除了console.log
,我们可以从app.js
发送child_process
的数据吗?
如果 app.js 是节点脚本,则很容易将数据发送给调用者(反之亦然),例如:
index.js
const child_process = require('child_process');
const appInstance = child_process.fork('app.js', [], {});
appInstance.on('message', message => {
console.log('Message from app.js:', message, JSON.stringify(message));
});
app.js
// Send some data to caller.
const data = { status: 'ok', message: 'hello from app.js' };
if (process.send) {
process.send(data);
}
如果你想过滤,有很多方法可以做到这一点。在消息处理程序中,您可以打开 message 对象,例如如果(消息 && message.status)。