簡體   English   中英

從AWS.DynamoDB.DocumentClient.Scan()調用返回輸出

[英]Returning Output from AWS.DynamoDB.DocumentClient.Scan() Call

我有一個函數返回DynamoDB表(Things)中的記錄數:

const table = 'Things';
const region = 'us-east-1';
const profile = 'development';

process.env.AWS_SDK_LOAD_CONFIG = true;
process.env.AWS_PROFILE = profile;

const AWS = require('aws-sdk');
AWS.config.update({ region: region });

function ddb_table_has_records(table_name) {
    const ddb_client = new AWS.DynamoDB.DocumentClient();

    const ddb_query_parameters = {
        TableName: table_name,
        Select: 'COUNT'
    }

    const results = ddb_client.scan(ddb_query_parameters).promise();

    results.then((data) => {
        console.log(data.Count);
        return data;
    }).catch((err) => {
        console.log("Error: ", err);
    })
}

console.log(ddb_table_has_records(table));

當我運行此代碼時,我得到以下內容......

PS C:\> node .\get-count-thing.js
undefined
3951

我沒有從下面的掃描中捕獲數據; 雖然,我在console.log()調用中看到它:

console.log(ddb_table_has_records(table));

我搞砸了什么?

發布我的修復案例,任何人都有同樣的問題。 我不得不進行兩次更改以從表中檢索項目; 我需要......

  1. ...項目ALL_ATTRIBUTES
  2. ...迭代返回的Items集合

以下是我的更改功能:

function ddb_table_has_records(table_name) {
    const ddb_client = new AWS.DynamoDB.DocumentClient();

    const ddb_query_parameters = {
        TableName: table_name,
        Select: 'ALL_ATTRIBUTES'
    }

    const results = ddb_client.scan(ddb_query_parameters).promise();

    results.then((data) => {
        console.log(data.Count);

        data.Items.forEach((thing) => {
            console.log(thing);
        });

    }).catch((err) => {
        console.log("Error: ", err);
    })
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM