Node.js Lambda中DynamoDB DocumentClient.get返回格式调整问题
解决AWS Lambda中DocumentClient.get返回格式统一为数组的问题
直接在处理get请求的结果时,将返回的Item字段包装进数组即可,和你之前用QUERY返回的格式保持一致:
const AWS = require('aws-sdk'); const docClient = new AWS.DynamoDB.DocumentClient(); exports.handler = async (event) => { const params = { TableName: '你的表名', Key: { // 替换成你的主键字段和对应值,比如id: event.pathParameters.id id: event.id } }; try { const getResult = await docClient.get(params).promise(); // 将单个Item包装为数组,无数据则返回空数组 const formattedData = getResult.Item ? [getResult.Item] : []; return { statusCode: 200, body: JSON.stringify(formattedData) }; } catch (err) { return { statusCode: 500, body: JSON.stringify({ error: err.message }) }; } };
关键说明:
docClient.get()的结果里,Item字段对应找到的单条记录(如果存在)- 用三元判断处理两种情况:找到数据就把它放进数组;没找到则返回空数组
[],避免Swift客户端解析时出现格式不匹配的问题 - 保持和你之前
QUERY函数相同的返回结构(statusCode+JSON字符串化的数组),确保客户端逻辑统一
内容的提问来源于stack exchange,提问作者Andrew Treacy
相关产品推荐
相关产品推荐

