nodejs如何实现子进程将文件发送给主进程
时间: 2024-02-03 09:14:05 浏览: 175
在 Node.js 中,可以使用 `child_process` 模块创建子进程,并且可以使用 `send()` 方法将消息发送给主进程。
以下是一个例子,展示了如何在子进程中读取文件内容,并将其发送给主进程:
**主进程代码:**
```javascript
const { spawn } = require('child_process');
const child = spawn('node', ['child.js']);
child.on('message', (data) => {
console.log(`Received data from child process: ${data}`);
});
child.on('close', () => {
console.log('Child process exited');
});
```
**子进程代码(child.js):**
```javascript
const fs = require('fs');
const data = fs.readFileSync('file.txt');
process.send(data.toString());
```
在子进程中,我们使用 `fs.readFileSync()` 方法同步读取了 `file.txt` 文件,并将其内容转换为字符串。然后,我们使用 `process.send()` 方法将字符串发送给主进程。
在主进程中,我们使用 `child.on('message', ...)` 监听子进程发送的消息,并在回调函数中处理消息。在这个例子中,我们简单地将消息打印到控制台上。
当子进程完成任务并退出时,我们可以使用 `child.on('close', ...)` 监听 `close` 事件,并在回调函数中处理。在这个例子中,我们只是简单地打印一条消息。
阅读全文