DynamoDB和Nodejs使用FilterExpression并获取ExpressionAttributeValues的错误消息包含无效值

时间:2018-12-13 21:37:14

标签: node.js amazon-web-services amazon-dynamodb

有人可以让我知道为什么我的变量没有被传递吗?

我的startend变量似乎没有传递到我的params中。

获取以下错误消息:

Unable to scan the table. Error JSON: { ValidationException: ExpressionAttributeValues contains invalid value: The parameter cannot be converted to a numeric value: NaN for key :queryDateEnd

如果我用原始的UNIX时间戳替换变量,它将很好地工作。

  moment.tz.setDefault("Pacific/Auckland");
  var daysAgo = event.daysAgo;
  var currentDate = moment(new Date()).startOf("day");
  var start = moment(currentDate).subtract(7,'d').startOf("day");
  var end = moment(currentDate).subtract(6,'d').startOf("day");
  console.log("queryDateStart: "+start)
  console.log("queryDateEnd: "+end)
  var params = {
    TableName: "addToCart",
    ProjectionExpression: "#timestamp, newExisting",
    FilterExpression: "#timestamp between :start and :end",
    ExpressionAttributeNames: {
      "#timestamp": "ctimestamp"
    },
    ExpressionAttributeValues: {
      ":queryDateStart": start,
      ":queryDateEnd": end
    }
  };

1 个答案:

答案 0 :(得分:0)

好像我需要将日期设置为UNIX时间戳,然后parseInt。