我有以下代码使用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 }
知道为什么会这样吗?这是最新版本的AWS SDK for Node。
TIA。
答案 0 :(得分:1)
有趣的是,当您从单元测试中调用此代码并且该测试中的断言失败时,会发生这种情况。我打算和亚马逊谈谈这件事。
答案 1 :(得分:1)
我认为你在第一个if条件表达式拼错了错误变量。你写了错误而不是错误。
function(error, data) {
if(err != null) { <-- // err should be error
callback(500);
}