繁体   English   中英

使用 Lambda 的 DynamoDB 扫描不返回元素

[英]DynamoDB Scan with Lambda not returning elements

我有一个带有以下代码的 Lambda:

// Load the AWS SDK for Node.js.
var AWS = require("aws-sdk");
// Set the AWS Region.
AWS.config.update({ region: "us-east-2" });

 
exports.handler =  function(event, context, callback) {
    // Create DynamoDB service object.
    var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });
    
    var params = {
       TableName: "Ranking",
       ProjectionExpression: "#username, Score, Duration",
       FilterExpression: "#username = :username",
       ExpressionAttributeNames: {
          "#username": "Username",
       },
       ExpressionAttributeValues: {
            ":username": {
               S: 'Alberto'
            },
       }
    };
    
    
    
    let toReturn = [];
    ddb.scan(params, function (err, data) {
      if (err) {
        toReturn = err
      } else {
        toReturn = data.Items;
      }
    });
    let response = {
        statusCode: 200,
        body: JSON.stringify(toReturn)
    };
    callback(null, response)
};

但是我总是将[]视为响应...

我当前的数据库有以下记录: 在此处输入图像描述

所以我的问题是......为什么我不拿回那个项目?

由于您使用的是回调,因此您的代码应如下所示。 Duration也是保留关键字,所以也需要修改如下:

// Load the AWS SDK for Node.js.
var AWS = require("aws-sdk");
// Set the AWS Region.
AWS.config.update({ region: "us-east-2" });
 
exports.handler =  function(event, context, callback) {
    // Create DynamoDB service object.
    var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" });

    var params = {
      TableName: "Ranking",
      FilterExpression: "#username = :username",
      ProjectionExpression: "#username, Score, #duration",
      ExpressionAttributeNames: {
          "#username": "Username",
          "#duration": "Duration",          
      },
      ExpressionAttributeValues: {
            ":username": {
              S: 'Alberto'
            },
      }
    };    
    
    ddb.scan(params, function (err, data) {
      if (err) {
        callback(null,  err)  
      } else {
        callback(null,  data.Items)  
      }
    });

};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM