0

{“错误”:“无法读取 null 的属性‘playerId’”}

我创建了一个列表 lambda 函数

传入一个 playerId。这个 playerId 就是这样使用的。

export const main = handler(async (event, context) => { 
const data = JSON.parse(event.body);
const params = {
  TableName: process.env.teamsTable,
  ExpressionAttributeValues : {
    ':playerId' : { S: data.playerId }
  },
  FilterExpression: "contains (players, :playerId)"
};
try {
  const result = await dynamoDb.scan(params);
  if (!result.Items) {
    throw new Error("Teams not found.");
  }

  return {
    status: 200,
    body: result.Items,
  };
} catch (e) {
return {
  statusCode: 500,
  body: JSON.stringify({ error: e.message }),
};}});

我已经使用无服务器模拟在本地对其进行了测试,并且可以正常工作。创建一个调用以在 FE 中使用它并遇到此错误:{error: "Cannot read property 'playerId' of null"} 错误:"Cannot read property 'playerId' of null",也通过 API 网关点击它并点击相同. 前端调用 -

  const endpoint = "/teams";
  console.log(playerId);
  try {
    const response = await API.get(amplifyAPIName, endpoint, {
      body: playerId
    });
    return response;
  } catch {
    return [];
  }
}

帮助

4

1 回答 1

0

答:我使用的是get方法而不是post。我在 aws 中将 playerId 作为过滤器表达式传递。通过将其更改为发布,我能够收到我的结果。

于 2021-03-12T08:46:31.397 回答