node.js - 在 aws 控制台中将事件主体解析为 json 时出错
问题描述
我将 lambda 与 aws 和无服务器框架一起使用。当我用无服务器离线测试它时,它工作得很好,但是当我部署它时,我不断收到一条消息:内部服务器错误,当我登录到 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
,它应该没问题。
推荐阅读
- django - Django模型表单save()方法不创建配置文件对象
- java - 如何比较图中的边以实现像 facebook 这样的网络图中的三元闭包
- rxjs - Dispatch action midstream
- javascript - JavaScript:如何修复未正确分配属性值的实例
- python - 为什么这两种寻找第 n 个斐波那契数的算法中的一种更有效?
- laravel - 如何在 Laravel 中新建 Vue js 的 App.js?
- java - 我需要帮助设置 Java
- java - 如何使用循环神经网络玩简单的 2D Java 游戏?
- php - Printing Numbered Associative Array from MySQLi query in a Loop
- swift - How to present a view controller as a part of a view?