AWS.DynamoDB.DocumentClient.get всегда возвращает null

#node.js #amazon-web-services #amazon-dynamodb

#node.js #amazon-веб-сервисы #amazon-dynamodb

Вопрос:

Я хочу получить данные из элемента DynamoDB с помощью лямбда-функции. Однако следующий код всегда возвращает null .

 async function getData(userId) {
  let documentClient = new AWS.DynamoDB.DocumentClient();
  let params = {
    TableName: 'mytable',
    Key: {
      user_id: userId
    }
  };
  let result = await documentClient.get(params).promise();
  console.log(result);
  return resu<
}

module.exports.handler = async event => {
  let test = getData('test');
  return { statusCode: 200, body: test };
};
  

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

Есть идеи?

Комментарии:

1. Разве вам не нужно await для вашего getData?, ` let test = await getData(‘test’);`

2. Вы правы! Теперь я сделал функцию getData не асинхронной функцией и переместил ожидание из результата в вызов функции getData, и теперь он работает. Большое спасибо! 🙂

3. Нет проблем. Если вы не возражаете, я дам ответ для дальнейшего использования.

Ответ №1:

На основе комментариев.

Решение состояло в том, чтобы await для getData :

 module.exports.handler = async event => {
  let test = await getData('test');
  return { statusCode: 200, body: test };
};