无法读取我的 lambda 函数中的特定 JSON 键
Unable to read specific JSON keys in my lambda function
在我的节点 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 请求的新手,因此非常感谢任何有关值键的帮助
lambda 处理程序的 event
参数的 body
属性 默认为字符串格式。如果你使用 typeof
查看 body 的数据类型,你会得到一个 return 的字符串值:
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;
}
在我的节点 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 请求的新手,因此非常感谢任何有关值键的帮助
lambda 处理程序的 event
参数的 body
属性 默认为字符串格式。如果你使用 typeof
查看 body 的数据类型,你会得到一个 return 的字符串值:
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;
}