我有一个函数可以从DynamoDB表(事物)中返回记录数:
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));
我在想什么?
答案 0 :(得分:0)
在有人遇到相同问题的情况下发布我的修订。我必须进行两项更改才能从表中检索项目。我需要...
ALL_ATTRIBUTES
以下是我的更改功能:
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);
})
}