1

Merhaba Bunu nasıl düzelteceğimi gerçekten bilmiyorum. Lambda test ederken, birden fazla validasyona girmeye devam ediyorum. Etrafımı araştırıyordum ve insanlar yaptığım en son SDK'yı güncellemeyi söylediler ama yine de aynı hataları aldılar. Yeni AWS.DynamoDB.DocumentClient() de diğer apis kullanarak denedim; ancak bu sadece günlüklerimde tanımlanmamış olarak döner. DynamoDB'den sorgulamak için kodumu nasıl alabilirim?DynamoDB sorgu hatası: Birden çok doğrulama hatası

'use strict'; 

var APP_ID = "amzn1.echo-sdk-ams.app.ca7e2a16-1bf9-4b5b-8a7e-8c15fb0ccd9d"; 


var AlexaSkill = require('./AlexaSkill'); 



var SatTracker = function() { 
    AlexaSkill.call(this, APP_ID); 
}; 
var AWS = require('aws-sdk'); 
AWS.config.update({region: 'us-east-1'}); 
var doc = require("dynamodb-doc"); 

var dynamodb = new AWS.DynamoDB.DocumentClient(); 

function getZipcode(zipcode) { 

    var queryParams = { 
     TableName : "ZipcodeUSA", 
     KeyConditionExpression: "#zc = :zip", 
     ExpressionAttributeNames:{ 
      "#zc": "zipcode" 
     }, 
     ExpressionAttributeValues:{ 
      ":zip":zipcode 
     } 
    };  
    console.log("about to start dynamoDB query with zipcode: " + zipcode); 
    dynamodb.query(queryParams, function(err, data) { 
     if (err) { 
      console.log("error in dynamo.query of getZipcode funtion: " + err); 
     } else { 
     var zipData; 
     console.log("starting dynamoDB query with zipcode: " + zipcode); 
     if (data && data.Items && data.Items.length > 0) { 
      console.log("Found " + data.Items.length + " matching zipcode"); 
      if (data.Items.length === 1) { 
       zipData = data.Items[0]; 
       return zipData; 
      } 
     } 


     } 
     console.log("completed dynamo.query with zipcode: " + err); 
    });  
} 
+1

yardımcı olur: varsayarsak posta kodu bu gibi görünmelidir, bir dize? –

+0

Çoktan seçmeli bir hata alıyorum ama şimdi sorgu henüz tanımlanmamış. –

cevap

1

ExpressionAttributeValues'ınıza ilettiğiniz posta kodunun aslında bir nesne olduğundan emin olun.

var queryParams = { 
    TableName : "ZipcodeUSA", 
    KeyConditionExpression: "#zc = :zip", 
    ExpressionAttributeNames:{ 
     "#zc": "zipcode" 
    }, 
    ExpressionAttributeValues:{ 
     ":zip": { "S" : zipcode } // S if your zip code is a String N if its a number 
     } 
};  

Umut bu alıyorsanız hangi hata