从节点js中的Lambda回调中提取body

时间:2018-03-20 22:08:06

标签: node.js lambda callback

我正在尝试从Lambda函数返回的回调中提取正文。我正在使用以下代码调用该函数:

    const pdfBuffer = await new Promise((resolve, reject) => {
      lambda.invoke(params, function(err, data) {
        if (err) {
          console.log('STACK ERROR IS' + err, err.stack)
          reject(err);
        } else {
          console.log('Returned DATA is: ' + JSON.stringify(data));
          resolve(data);
        }            
      });
    });

    Prescription.deletePrescription(programId);

    const returnedPDF = JSON.parse(pdfBuffer.Payload)

    response.status(200);
    response.set({
      'Content-Type': 'application/pdf',
      'Content-Disposition': `attachment; filename="${filename}.pdf"`,
      'X-Publish-Filename': `"${filename}.pdf"`,
    });
    response.end(new Buffer(returnedPDF.body, 'binary'));

Lambda回调函数如下所示:

   return callback(null, {
    statusCode: 200,
    body: data,
    isBase64Encoded: true,
    headers: {
      'Content-Type': 'application/pdf',
    },
   })

我回来的数据对象如下:

{"StatusCode":200,"ExecutedVersion":"$LATEST","Payload":"{\"statusCode\":200,\"body\":\"JVBERi0xLjQKJdPr6eEKMSAwIG9iago8PC9DcmVhdG9yIChDa=\",\"headers\":{\"Content-Type\":\"application/pdf\"}}"}

我尝试了很多东西来获取这个嵌套对象的主体?包括JSON.parse()因为我认为它是stringified,但是我没有运气。

非常感谢提前。

0 个答案:

没有答案