我正在尝试从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
,但是我没有运气。
非常感谢提前。