【问题标题】:Why is the AWS Dynamo SDK's getItem method executing my callback function multiple times?为什么 AWS Dynamodb SDK getItem 方法多次执行我的回调函数?
【发布时间】:2013-06-26 21:59:47
【问题描述】:

我有以下代码使用 AWS SDK for Node 来访问 DynamoDB:

var aws = require('./aws')

...

var key = "fookey";

aws.dynamo.getItem({
    "TableName": "TableFoo",
    "Key": {
        "FooKey": {
            "S": key
        }
    }
}, function(error, data) {
    if(err != null) {
        callback(500);
    }
    else if(data.Item != null) {
        var obj = { values: [] };
        callback(null, obj);
    }
    else {
        callback(null, data.Item.values.S);
    }
});

发生的情况是调用成功执行并返回了预期的结果。但是 - 然后 - 第二次执行回调函数并且错误对象设置为:

{ [SyntaxError: Unexpected token o] statusCode: 200, retryable: false }

知道为什么会这样吗?这是最新版本的适用于 Node 的 AWS 开发工具包。

TIA。

【问题讨论】:

    标签: node.js amazon-web-services amazon-dynamodb


    【解决方案1】:

    有趣的是,当您从单元测试中调用此代码并且该测试中的断言失败时,似乎会发生这种情况。我将与亚马逊谈谈这件事。

    【讨论】:

    • 你的问题是什么?是否可以提供容量? IE 结果不是 JSON.parse-able?
    【解决方案2】:

    我认为您在第一个 if 条件表达式中拼错了错误变量。你写的是错误而不是错误。

    function(error, data) {
        if(err != null) {    <-- // err should be error
            callback(500);
        }
    

    【讨论】:

      猜你喜欢
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 2020-02-24
      • 2018-08-12
      • 1970-01-01
      • 2020-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多