node.js多进程child_process 子进程返回的数据
时间: 2024-02-16 10:00:39 浏览: 27
当使用 `child_process` 模块创建子进程时,可以使用 `stdout` 和 `stderr` 事件来获取子进程的输出。例如,可以使用以下代码来创建子进程并获取其输出:
```javascript
const { spawn } = require('child_process');
const child = spawn('ls', ['-l']);
child.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
child.stderr.on('data', (data) => {
console.error(`stderr: ${data}`);
});
child.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
```
在这个例子中,我们使用 `spawn` 方法创建一个子进程,运行 `ls -l` 命令。然后,我们监听子进程的 `stdout` 和 `stderr` 事件,并在事件回调函数中打印输出。最后,我们监听子进程的 `close` 事件,在子进程退出时打印退出码。
注意,`stdout` 和 `stderr` 事件可能会被多次触发,因此需要对它们进行累加或者缓存处理。同时,如果子进程需要从主进程接收数据,可以使用 `child.send()` 方法来发送数据,然后在子进程中监听 `process.on('message', ...)` 事件来接收数据。