在我的節點 lambda 函式中有這個未定義的問題是代碼
exports.handler = async function (event, context) {
console.log('top')
console.log(event.body)
console.log(event.body.value)
console.log('bottom')
return {
statusCode: 200,
body: JSON.stringify(event)
} }
這是一個云手表截圖

我是 lambda 和 post 請求的新手,因此非常感謝有關 value 鍵的任何幫助
uj5u.com熱心網友回復:
bodylambda 處理程式引數的屬性event默認為字串格式。如果你使用typeof查看body的資料型別,你會得到一個字串的回傳值:
console.log(typeof event.body); // logs 'string'
要body使用物件語法訪問屬性,您必須首先使用JSON.parse方法決議它:
let body = JSON.parse(event.body);
為了避免淘氣消費者的意外驚喜,你可以使用我個人在我的專案中使用的這個功能:
/**
* @function getJsonBody
* @description Method used for retrieving the JSON body of HTTP requests.
* @param {object} event Lambda event parameter.
* @returns {object} JSON body of request payload.
*/
getJsonBody(event) {
if (event && event.body !== null && event.body !== undefined) {
try {
let body = JSON.parse(event.body);
return body;
} catch (err) {
return null;
}
}
return null;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/426779.html
標籤:节点.js json 邮政 aws-lambda
上一篇:POST請求中不傳遞引數
