1

我有以下代码使用 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.js 的 AWS 开发工具包。

TIA。

4

2 回答 2

1

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

function(error, data) {
    if(err != null) {    <-- // err should be error
        callback(500);
    }
于 2013-09-15T17:12:00.093 回答
1

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

于 2013-06-27T19:20:18.207 回答