gpt4 book ai didi

node.js - "Unexpected token u in JSON at position 0"

转载 作者:行者123 更新时间:2023-12-04 01:39:39 25 4
gpt4 key购买 nike

当我在 Postman 上运行端点时,它工作正常并返回它发布的结果,但是当我在 AWS lambda 上使用 TEST 时,它返回错误“JSON 中位置 0 的意外 token u”。
我在集成请求中检查了在 API 网关上使用 Lambda 代理,这会产生什么影响吗?

这是我的 lambda 函数

'use strict';

const uuid = require('uuid');
const AWS = require('aws-sdk'); // eslint-disable-line import/no-extraneous-dependencies

const dynamoDb = new AWS.DynamoDB.DocumentClient();

module.exports.create = (event, context, callback) => {
const timestamp = new Date().getTime();
const data = JSON.parse(event.body);

if (typeof data.phoneNumber !== 'string') {
console.error('Validation Failed');
callback(null, {
statusCode: 400,
headers: { 'Content-Type': 'text/plain' },
body: 'Couldn\'t create item.',
});
return;
}

const params = {
TableName: process.env.DYNAMODB_TABLE,
Item: {
id: uuid.v1(),

phoneNumber: data.phoneNumber,
sub: data.sub,

createdAt: timestamp,
updatedAt: timestamp,
},
};

console.log(params);

// write the lakeSubscription to the database
dynamoDb.put(params, (error) => {
// handle potential errors

if (error) {
console.error(error);
callback(null, {
statusCode: error.statusCode || 501,
headers: { 'Content-Type': 'text/plain' },
body: 'Couldn\'t create in dynamoDb.',
});
return;
}

// create a response
const response = {
statusCode: 200,
body: JSON.stringify(params.Item),
};
callback(null, response);
});
};

最佳答案

首先,如果您看到您提供的 JSON:
{ "phoneNumber": "+11231231234", "sub": [ { "Name": "Tillery" }, { "Name": "Bob" } ] }
没有 正文 key 。您可以使用 事件 而不是 event.body .喜欢
console.log(event);
AWS 测试事件的输入已经是 JSON 对象,您不需要再次解析它。

请删除 JSON.parse ,你会好起来的。

谢谢!

关于node.js - "Unexpected token u in JSON at position 0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57979289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com