每个响应发送多个缓冲区图像-nodeJS,expressJS

时间:2020-07-21 17:13:57

标签: node.js express buffer

我正在处理树莓派。我想用pi相机拍摄两张图片(之间延迟50毫秒)。 拍摄完两个图像后,我想将它们和响应一起发送给控制器。

我尝试过的事情:

app.get('/img', function (req, res) {

 const runApp = async () => {

    const stillCamera = new StillCamera()

    const stillCameraWP = new StillCamera({
        delay: 50
    })

    //To get images with out projection
    const image = await stillCamera.takeImage()

    //To get images with projection
    const image1 = await stillCameraWP.takeImage()

    //sending image to controller
    res.set('Content-Type', 'image/jpg')
    res.send(Buffer.from(image,image1)) 

 }

 runApp()

})

我想同时发送image和image1以及响应。

1 个答案:

答案 0 :(得分:0)

在响应对象中,您可以尝试将数据发送为JSON之类的

res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify(
 { 
  image : Buffer.from(image),
  image1: Buffer.from(image1)
 })
);

由于您在回调中使用await,因此必须在这样的请求处理程序中使用async

app.get('/img', async (req, res) => {
  //callback implementation here
})

类似地,在runApp中,必须使用await创建StillCamera对象,例如:

const runApp = async () => {

    const stillCamera = await new StillCamera()

    const stillCameraWP = await new StillCamera({
        delay: 50
    })