在事件中传递 JSON 文件:事件无法读取键,只能读取值
passing a JSON file in event: event cannot read keys, only values
所以我有这个简单的代码:
module.exports.getEstimate = (event, context, callback) => {
console.log('event init', event.resource);
console.log('message', event.message);
console.log('EVENTS', event);
};
我在日志中看到了这个:
INFO event init /get-quotation
INFO message undefined
INFO EVENTS { resource: '/get-quotation', isBase64Encoded: false }henlo"\n}',api.us-east-1.amazonaws.com',3' ],t)' ],',
然后我通过 Postman 传递这个 body:
{
"message":"henlo"
}
我曾经在 AWS Lambda 中编写代码,当我调用 event.message
时,"henlo" 将是值,但这里不是,它说 undefined
所以我记录了整个事件正如您所看到的,当我 console.log 整个事件时,我可以看到 "henlo" 作为日志的一部分,但密钥 "message" 不存在。我如何调用 "henlo"
?
这也是一个 Post 请求。
如果这是一个使用 JSON 作为正文的简单 POST 请求,这就是我通常获取正文的方式
const body = JSON.parse(event.body)
然后你可以使用不同的方式来获取它的键和值:
Object.keys
const keys = Object.keys(body);
简单地访问正文的属性
const message = body.message;
或对象解构
const { message } = body.message
编辑:为使用事件文件调用的 lambda 添加信息
那种情况我通常会
const body = JSON.parse(event)
而不是
const body = JSON.parse(event.body)
其余不变
希望对您有所帮助!
所以我有这个简单的代码:
module.exports.getEstimate = (event, context, callback) => {
console.log('event init', event.resource);
console.log('message', event.message);
console.log('EVENTS', event);
};
我在日志中看到了这个:
INFO event init /get-quotation
INFO message undefined
INFO EVENTS { resource: '/get-quotation', isBase64Encoded: false }henlo"\n}',api.us-east-1.amazonaws.com',3' ],t)' ],',
然后我通过 Postman 传递这个 body:
{
"message":"henlo"
}
我曾经在 AWS Lambda 中编写代码,当我调用 event.message
时,"henlo" 将是值,但这里不是,它说 undefined
所以我记录了整个事件正如您所看到的,当我 console.log 整个事件时,我可以看到 "henlo" 作为日志的一部分,但密钥 "message" 不存在。我如何调用 "henlo"
?
这也是一个 Post 请求。
如果这是一个使用 JSON 作为正文的简单 POST 请求,这就是我通常获取正文的方式
const body = JSON.parse(event.body)
然后你可以使用不同的方式来获取它的键和值:
Object.keys
const keys = Object.keys(body);
简单地访问正文的属性
const message = body.message;
或对象解构
const { message } = body.message
编辑:为使用事件文件调用的 lambda 添加信息
那种情况我通常会
const body = JSON.parse(event)
而不是
const body = JSON.parse(event.body)
其余不变
希望对您有所帮助!