我尝试使用lambda作为后端。
所以我制作了它的样本,然后由邮递员发布数据。
我选择表单数据并将数据放入键和值中。
它会像这样返回。
{"message": "Could not parse request body into json: Unrecognized token \'Idx\': was expecting \'null\', \'true\', \'false\' or NaN\n at [Source: [B@745d4999; line: 1, column: 5]"}
所以我找到了一些文档,如果我使用邮递员测试lambda,请选择行并将数据发布为
{
"key" : "params"
}
但是当我按表单数据类型发布数据时,我想在lambda中接收数据。
这是对它的简单测试 在lambda中,
exports.handler = (event, context, callback) => {
// TODO implement
const Idx = event.Idx * 2;
callback(null, Idx);
};
答案 0 :(得分:0)
在使用表单数据时,您的event.body不是JSON,而是您需要解析的字符串。具体来说,这是一个查询字符串。因此,您的情况是:Idx=2
您需要做的是将其解析为JSON,然后对其进行操作。
您可以为此使用模块
const querystring = require('querystring');
在lambda内部
const body = querystring.parse(event.body)
现在您可以使用Idx
来访问body[‘Idx’]
您可以使用typeof
来区分是对象还是字符串:
if (typeof(event.body) === ‘object’)
编辑:完整代码
const querystring = require('querystring');
exports.handler = (event, context, callback) => {
// TODO implement
console.log(event.body);
var Idx = null;
if (typeof(event.body) === ‘object’) {
Idx = event.Idx * 2;
} else if (typeof(event.body) === ‘string’) {
Idx = querystring.parse(event.body)[‘Idx’];
}
callback(null, Idx);
};