Использование выражений проекта в Dynamo DB

У меня есть таблица DynamoDB, и я пытаюсь получить только один столбец из таблицы. В частности, мне просто нужны разные значения из столбца.

Я использую AWS Amplify и настроил API для запроса таблицы DynamoDB.

Метод get в API выглядит следующим образом. где

  1. tableName - это переменная, содержащая имя таблицы.
  2. Listing_Location - это столбец, который я хочу получить из таблицы.
app.get(path, function (req, res) {

  if (userIdPresent) {
    req.body['userId'] = req.apiGateway.event.requestContext.identity.cognitoIdentityId || UNAUTH;
  }

  var queryItemParams = {
    TableName: tableName,
    ProjectionExpression: "#listing_location",
    ExpressionAttributeNames = { 
      '#listing_location': 'Listing_Location'
    }
  };

  dynamodb.scan(queryItemParams, (err, data) => {
    if (err) {
      res.statusCode = 500;
      res.json({ error: 'Could not fetch listing locations : ' + err });
    } else {
      res.json(data.Items);
    }
  });
});

из внешнего приложения React я делаю следующий запрос на получение, где apiName - это переменная с именем API. path - это конечная точка api для выполнения запроса на получение. и я импортирую API вот так

import { Amplify, API } from 'aws-amplify';
  getAllLocations = () => {
    console.log("in getAllLocations");
    API.get(apiName, path).then(response => {
      console.log(response);
    });
  }

Можете ли вы помочь мне понять, что я делаю не так?

1 ответ

Не могу поверить, что совершил эту ошибку

ExpressionAttributeNames = { 

должен

ExpressionAttributeNames : { 
Другие вопросы по тегам