nodejs中子进程 process.stdout.write如何将 Buffer.form的文件传输给主进程
时间: 2024-02-11 08:04:29 浏览: 171
在Node.js中,子进程可以使用`process.stdout`将数据输出到标准输出流,然后在主进程中使用`child_process.spawn()`方法启动子进程,并将其标准输出流连接到主进程中的一个可读流对象。这样可以通过监听可读流对象的`data`事件来接收子进程输出的数据,包括`Buffer`类型的数据。
以下是一个示例,子进程将一个文本文件读取成`Buffer`对象,并将其输出到标准输出流:
子进程代码:
```javascript
const fs = require('fs');
const path = require('path');
const filePath = path.join(__dirname, 'example.txt');
const buffer = fs.readFileSync(filePath);
process.stdout.write(buffer);
```
主进程代码:
```javascript
const { spawn } = require('child_process');
const child = spawn('node', ['child.js']);
child.stdout.on('data', data => {
const buffer = Buffer.from(data);
console.log('Received buffer:', buffer);
});
```
在主进程中,我们使用`child_process.spawn()`方法启动子进程,并将其标准输出流连接到一个可读流对象。然后,我们监听可读流对象的`data`事件,以接收子进程输出的数据。在此示例中,我们将接收到的数据转换为`Buffer`对象,并在控制台上输出它。
阅读全文