Javascript 如何将节点js子进程的输出图像发送到';家长';?

Javascript 如何将节点js子进程的输出图像发送到';家长';?,javascript,node.js,Javascript,Node.js,我有一个子进程,它被调用如下: server.js app.get('/search', function (req, res) { var cp = spawn('node', 'app.js'); cp.stdout.on('data', function(data) { console.log('stdout: ' + data); }); ... }); const img = await Page.captureScreenshot({

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

server.js

app.get('/search', function (req, res) {
    var cp = spawn('node', 'app.js');
    cp.stdout.on('data', function(data) {
        console.log('stdout: ' + data);
    });
    ...
});
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.
});
目前app.js正在利用chrome headless的captureScreenshot功能生成屏幕截图,然后将其存储在本地

app.js:

无需在本地存储图像,而是将其上载到服务器。我正试图找到一种方法使此功能正常工作:

server.js V2

app.js V2


您可以通过
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

app.get('/search', function (req, res) {
    var cp = spawn('node', 'app.js');
    cp.stdout.on('data', function(data) {
        console.log('stdout: ' + data);
    });
    ...
});
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.
});
这是给你的好教程


我希望它对您有所帮助。

有没有办法将图像直接流式传输到父级而不是保存在文件夹中?
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.
});