Я создаю веб-сайт с использованием инфраструктуры React NodeJS, и в основном я хотел бы вызвать значение из DynamoDB и отобразить его на веб-странице. Я уже создал DocClient и смог извлечь значения и вернуть его в формате json, однако проблема заключается в том, что страница загружается до выполнения обещания и поэтому никогда не заканчивается отображением возвращенных данных на веб-странице.
Вот мой код, предположим, что регион, таблица, ключ доступа и секрет уже предоставлены в env vars.
let items = [];
async function getContent_ID(id) {
const dynamoDB = new AWS.DynamoDB.DocumentClient({
region: region,
accessKeyId: accessKeyId,
secretAccessKey: secretAccessKey,
});
let params = {
TableName: tableName,
//AttributesToGet: ['Content_ID', 'Content_Type'],
FilterExpression: '#idname in (:val1)',
ExpressionAttributeNames: {
'#idname': 'Content_ID'
},
ExpressionAttributeValues: {
':val1': id // retrieved from getContent_ID(id)
},
ReturnConsumedCapacity: 'NONE', // optional (NONE | TOTAL | INDEXES)
};
return await new Promise((resolve, reject) => {
dynamoDB.scan(params, (error, data) => {
if (error) {
console.log(error.statusCode);
resolve({
statusCode: 400,
error: console.log(error.message)
});
} else {
console.log(JSON.stringify(data));
resolve({ statusCode: 200, body: JSON.stringify(params.Item) })
}
});
});
}
Тогда в идеале я ищу просто отобразите значение на основе целого числа элемента Content_ID в моей таблице, поэтому, например, у меня есть запись элемента, где Content_ID = 1; Итак:
<h4> { getContent_ID(1) // should display "hello world" which is retrieved from Content_ID =1 item} </h4>
Ошибка возвращается, если я помещаю {getContent_ID (1)} в h4
Ошибка: объекты недопустимы как дочерний элемент React (найдено: [Обещание объекта] ). Если вы хотите отобразить коллекцию дочерних элементов, используйте вместо этого массив.