gpt4 book ai didi

javascript - 如何将输出图像从 Node js 子进程发送到 'parent'?

转载 作者:行者123 更新时间:2023-11-30 21:08:58 25 4
gpt4 key购买 nike

我有一个子进程被调用如下:

server.js

app.get('/search', function (req, res) {
var cp = spawn('node', 'app.js');
cp.stdout.on('data', function(data) {
console.log('stdout: ' + data);
});
...
});

目前 app.js 正在利用 chrome-headless 的 captureScreenshot 函数生成屏幕截图,然后将其存储在本地。

app.js:

    const img = await Page.captureScreenshot({format: 'png', fromSurface: true});
fs.writeFile('./screenshot.png', img.data, 'base64', function (err) {
if (err) {
console.log(err);
}
});

不必将图片存储在本地,而是将其上传到服务器。我正在尝试找到一种方法来使此功能正常工作:

server.js V2

app.get('/search', function (req, res) {
var cp = spawn('node', 'app.js');
cp.stdout.on('data', function(data) {
upload_image(data);
});
...
});

app.js V2

    const img = await Page.captureScreenshot({format: 'png', fromSurface: true});
//EXPOSE 'img' to parent via cp.stdout - How do I do this part?
});

最佳答案

您可以通过fork()发送消息

server.js

const { fork } = require('child_process');
app.get('/search', function (req, res) {
const forked = fork('app.js');
forked.on('message', (data) => {
uploadImage(data.imageURL); // It will be send by parent.
}); ...
});

app.js

const img = await Page.captureScreenshot({format: 'png', fromSurface: true});
fs.writeFile('./screenshot.png', img.data, 'base64', function (err) {
if (err) {
console.log(err);
}
process.send({ imageURL: './screenshot.png' }); //You can send any data from here.
});

这是适合您的教程。

https://medium.freecodecamp.org/node-js-child-processes-everything-you-need-to-know-e69498fe970a

希望对你有帮助。

关于javascript - 如何将输出图像从 Node js 子进程发送到 'parent'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46329206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com