写nodejs,进程通信,脚本2向脚本1发送信息,脚本1给脚本2发送结果
时间: 2023-10-16 16:09:00 浏览: 38
可以使用 Node.js 自带的 `child_process` 模块进行进程通信。下面是一个简单的示例:
脚本1:
```js
const { spawn } = require('child_process');
const child = spawn('node', ['script2.js']);
child.on('message', (message) => {
console.log(`Received result from script2: ${message}`);
});
child.send('Hello from script1!');
```
脚本2:
```js
process.on('message', (message) => {
console.log(`Received message from script1: ${message}`);
// 在这里处理业务逻辑并生成结果
const result = 'This is the result.';
process.send(result);
});
```
在脚本1中,我们通过 `spawn` 方法启动了脚本2,并监听了 `child` 对象的 `message` 事件。然后通过 `child.send` 方法向子进程发送消息。
在脚本2中,我们监听了 `process` 对象的 `message` 事件,并在事件处理函数中处理业务逻辑并生成结果。最后通过 `process.send` 方法向父进程发送结果。
注意:在 Windows 平台上,使用 `spawn` 方法时需要将第一个参数改成命令行解释器的路径(例如 `C:\\Windows\\System32\\cmd.exe`),第二个参数改成一个数组,数组的第一个元素是要执行的脚本的路径,后面的元素是命令行参数。