Я хочу вернуть данные из dynamodb, когда ключ совпадает

#node.js #amazon-dynamodb #aws-sdk-nodejs

#node.js #amazon-dynamodb #aws-sdk-nodejs

Вопрос:

 **I want to return the data key values but it is not working. Please help me. The main concept of this method is when this is invoke dal is the keyword and it fetches that key values from the dynamodb. For that i used global also but not updating that global variable also.
 

Я попытался вернуть значение из обратного вызова, а также присвоить результат локальной переменной внутри функции и вернуть ее, но ни один из этих способов фактически не возвращает ответ (все они возвращают undefined или независимо от начального значения переменной result ).**

 function getLocation(){
    let a=[];
    const documentClient = new AWSS.DynamoDB.DocumentClient({region:"us-east-2"});
        const params = {
            TableName : "ProductLocation1",
            Key :{
                Product_Name : 'dal'
            }
        };
        documentClient.get(params,(err,data)=>{
            if(err){
                console.log('error is',err);
            }
            console.log('data is : ',data);
            global.a=Object.keys(data);
        });
        return global.a;
}
 

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

1. Не могли бы вы также указать предстоящий результат в обратном вызове для err или data?

2. Ошибки нет, но она не возвращает данные, она возвращает undefine

3. Пожалуйста, подтвердите, что данные, которые вы пытаетесь получить, доступны в вашей таблице, потому что данные не будут определены, если ничего не будет получено из DynamoDB.

Ответ №1:

 try {
    const result = await documentClient.get(params).promise();
} catch (error) {
    // handle error
}
 

Вы можете получить результат, используя promise amp; await, а не функцию обратного вызова. Таким образом, вам не нужно хранить их в локальной переменной.

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

1. Я получаю ошибку синтаксического анализа: неожиданный токен DocumentClient

2. Имеет ли ваша функция разрешение на доступ к dynamodb?

3. Да, все разрешения даны