DynamoDB и Nodejs, использующие FilterExpression и получающие сообщение об ошибке ExpressionAttributeValues, содержат недопустимое значение - PullRequest
0 голосов
/ 14 декабря 2018

Может кто-нибудь сообщить мне, почему мои переменные не проходят через?

Похоже, что мои start и end переменные не передаются в мой 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 голосов
/ 14 декабря 2018

Похоже, мне нужно установить дату в UNIX timestamp, а затем проанализировать ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...