带有节点 js 抛出错误的 Dynamo DB getItem

Dynamo DB getItem with node js throwing error

我是 Javascript 和 DynamoDB 的新手。我正在尝试使用 aws-sdk 在 nodejs 中为 javascript 执行 getitem。 Dynamo table Cars 的主要索引是 "name" 一个字符串。

var AWS = require('aws-sdk');
AWS.config.region='eu-west-1';
var db = new AWS.DynamoDB();

var params = {
TableName : 'Cars',
            Key : {
                    "name" : {
                            "S" : "Volkswagen Dasher"
                    },
            }
}

db.getItem(params, function(err, data) {
                if (err) {
                console.log(err); // an error occurred
                }
                else {
                console.log(data); // successful response
                }
                return next();
                });

在 运行 上面的 .js 文件上,我收到以下错误。

 ubuntu@ubuntu:~/node$ node getItem.js  
 {}
 /home/ubuntu/node_modules/aws-sdk/lib/request.js:30
             throw err;
                   ^ ReferenceError: next is not defined
     at Response.<anonymous> (/home/ubuntu/node/getItem.js:21:10)
     at Request.<anonymous> (/home/ubuntu/node_modules/aws-sdk/lib/request.js:353:18)
     at Request.callListeners (/home/ubuntu/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
     at Request.emit (/home/ubuntu/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
     at Request.emit (/home/ubuntu/node_modules/aws-sdk/lib/request.js:595:14)
     at Request.transition (/home/ubuntu/node_modules/aws-sdk/lib/request.js:21:10)
     at AcceptorStateMachine.runTo (/home/ubuntu/node_modules/aws-sdk/lib/state_machine.js:14:12)
     at /home/ubuntu/node_modules/aws-sdk/lib/state_machine.js:26:10
     at Request.<anonymous> (/home/ubuntu/node_modules/aws-sdk/lib/request.js:37:9)
     at Request.<anonymous> (/home/ubuntu/node_modules/aws-sdk/lib/request.js:597:12)

请帮帮我。干杯!

很高兴看到您尝试使用 DynamoDB!我不确定我是否理解您的代码的上下文,但如果您的目标是进行简单的 GetItem 调用,则不需要 'return next()' 语句。考虑到 javascript 的事件驱动性质,这些回调是异步的,实际上 "return" 没有任何意义。相反,您应该检查 response(数据)并相应地执行操作。

I.E.

dynamoDB.getItem(params, function(err, data) {
                     if (data) {
                        doSomethingWithItem(data.Item);
                     }
                 });

此外,如果您刚刚起步,我建议您查看 document-js-sdk,它是原始 SDK 之上的包装器,允许您使用 "string" 等文字{S: "string"}.