Как получить объект из стандартного вывода child_process? - PullRequest
0 голосов
/ 10 сентября 2018

Я хочу запустить 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
});

Есть ли способ отправить данные для child_process с app.js, кроме console.log?

1 Ответ

0 голосов
/ 10 сентября 2018

Если 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 , например, if (message && message.status).

...