带有节点 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"}.
我是 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"}.