我一直在尝试使用aws DynamoDB与我的ReactJS应用程序通信,但不断收到InvalidParameterType错误。 apikey,密钥和区域已被确认正确。跳过用户界面部分,我已尝试将请求Key
硬编码为params
,因此错误并非来自其他部分。相关代码是:
var AWS = require('aws-sdk');
var client = new AWS.DynamoDB({apiVersion: '2012-08-10'});
var params = {
TableName: "customer",
Key:
{
"email" : "12345@qwerrrr.com"
}
}
client.getItem(params, function(err, data) {
if(err){
console.log(err);
}else{
console.log(data)
}
});`
错误是(跳过' 0'到' 16')的相同部分:
Error: There were 18 validation errors:
* InvalidParameterType: Expected params.Key['email'] to be a structure
* UnexpectedParameter: Unexpected key '0' found in params.Key['email']
答案 0 :(得分:1)
您的关键参数应如下所示:
Key : {
"email" : {
"S" : "12345@qwerrrr.com"
}
}
如下所示:http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#getItem-property
答案 1 :(得分:0)
您可以使用AWS.DynamoDB.DocumentClient
来避免指定类型。
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#get-property
var AWS = require('aws-sdk');
var client = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});
var params = {
TableName: "customer",
Key:
{
"email" : "12345@qwerrrr.com"
}
};
client.get(params, function(err, data) {
if(err){
console.log(err);
}else{
console.log(data)
}
});`