Как получить объект из stdout child_process?

Я хочу запустить 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
202
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если 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.status).

Каковы требования к серверу для однократной работы 100 child_process?

Gunjan Patel 10.09.2018 15:34

Другие вопросы по теме