如何解决@ middy / http-json-body-parser无法解析JSON
你好,我想解析一个JSON,所以我使用了中间的中间件来解决这个问题。但这是行不通的。需要解析的数据无法处理成动态模型。我安装了@ middy / http-json-body-parser,@ middy / http-event-normalizer,@ middy / http-error-handler,但仍然无法正常工作。这是我的代码。
import AWS from 'aws-sdk';
import middy from '@middy/core';
import httpJsonBodyParser from '@middy/http-json-body-parser';
import httpEventNormalizer from '@middy/http-event-normalizer';
import httpErrorHandler from '@middy/http-error-handler';
import createError from 'http-errors';
const nid = require('nid')({HEX:1,length:16})
const dynamodb = new AWS.DynamoDB.DocumentClient();
async function createAuction(event,context) {
const { title,description } = event.body;
const now = new Date();
const auction = {
id: nid(),title,description,status: 'OPEN',createdAt: now.toISOString(),};
try {
await dynamodb.put({
TableName: process.env.AUCTIONS_TABLE_NAME,Item: auction,}).promise();
} catch(error) {
console.error(error);
throw new createError.InternalServerError(error);
}
return {
statusCode: 201,body: JSON.stringify(auction),};
}
export const handler = middy(createAuction)
.use(httpJsonBodyParser())
.use(httpEventNormalizer())
.use(httpErrorHandler());
以下是结果的屏幕截图。
解决方法
问题与dynamodb无关。 title
和description
不太可能被Middy解析,因为请求不是内容类型的application / json或api网关配置不正确。几乎没有什么可以说的,但是您应该console.log(event)
之后async function createAuction(event,context) {
,看看它是否确实包含您的请求中有用的内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。