在aws控制台中将事件主体解析为json时出错



我使用带有aws和无服务器框架的lambda。当我用无服务器离线测试它时,它工作得很好,但当我部署它时,我不断收到一条消息:内部服务器错误,当我登录到aws控制台时,错误显示

"errorType": "SyntaxError",
"errorMessage": "Unexpected token p in JSON at position 0",
"trace": [
"SyntaxError: Unexpected token p in JSON at position 0",
"    at JSON.parse (<anonymous>)",
"    at module.exports.createPost (/var/task/handlers/post.js:17:12)",
"    at Runtime.handler (/var/task/serverless_sdk/index.js:9:89602)",
"    at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)"
]

这是我的管理员

module.exports.createPost = async event => {
const data = JSON.parse(event.body);
const post = {
id: uuid.v4(),
createdAt: new Date().toISOString(),
userId: 1,
title: data.title,
body: data.body
};
const params = {
TableName: postsTable,
Item: post
};
db.putItem(params, (err, data) => {
if (err) {
return response(err.statusCode, err);
} else {
return response(200, post);
}
});
};

我正在用测试

{
"title": "post title",
"body": "post body"
}

我猜body已经是json了,所以如果您再次执行json.parse,它会抛出这个错误。如果你移除json.parse,它应该是好的。

最新更新