-1
나는 dynamoDB 및 node.js를 처음 사용합니다. 데이터베이스 (dynamodb)에 쿼리를 작성하고 코드를 작성하는 코드를 작성했습니다. 데이터베이스에서 사용자가 입력 한 요소의 경우. 내가 확인할 수 있지만 사용자가 데이터베이스에 존재하지 않는 다른 숫자로 시도 할 때 null 값을 얻고 있습니다.node.js를 사용하여 dynamo db에없는 값을 쿼리 할 때 null 값 가져 오기
내 테이블 이름은 "DevReferenceNumber"이고 기본 키 "referenc 번호"인 하나의 열만입니다.
'use strict';
var AWS = require('aws-sdk');
var docClient = new AWS.DynamoDB.DocumentClient({ region : 'us-east-1'});
function close(sessionAttributes, fulfillmentState, message) {
return {
sessionAttributes,
dialogAction: {
type: 'Close',
fulfillmentState,
message,
},
};
}
exports.handler = (event, context, callback) => {
try{
console.log(`event.bot.name=${event.bot.name}`);
if(event.bot.name != 'getCustomerReferenceNumber'){
callback('Invalid Bot Name');
}
dispatch(event, (response) => {
callback(null, response)
});
}catch(err){
callback("Error is occured while querying");
}
};
function dispatch(intentRequest, callback){
console.log(`dispatch UserID => ${intentRequest.userId}, intentName => ${intentRequest.currentIntent.name}`);
const intentName = intentRequest.currentIntent.name;
if(intentName === "checkReferenceNumber"){
return referenceNumber(intentRequest, callback);
}
}
function referenceNumber(intentRequest, callback){
const enteredReferenceNumber = intentRequest.currentIntent.slots.ReferenceNumber;
const sessionAttributes = intentRequest.sessionAttributes;
console.log("User has entered reference number is --> " + enteredReferenceNumber);
var params = {
TableName : "DevReferenceNumber",
KeyConditionExpression: "#refer = :ref",
ProjectionExpression : "#refer",
ExpressionAttributeNames: {
"#refer" : "referencenumber"
},
ExpressionAttributeValues:{
":ref": parseInt(enteredReferenceNumber)
}
};
docClient.query(params, function(err, data){
if(err){
callback(close(sessionAttributes, 'Fulfilled', {
contentType: 'PlainText',
content : 'Developer reference number is not matched with data from database'}));
}
else {
data.Items.forEach(function (item){
console.log("User matched data is ==> " + item.referencenumber);
callback(close(sessionAttributes, 'Fulfilled', {
contentType: 'PlainText',
content : 'Developer reference number is matched with data from database'}));
});
}
});
}
문서를 살펴볼 때 요소가 발견되지 않으면 빈 세트가 반환된다는 것을 언급합니다. if (data.length == 0) 다음 callbacks 할 조건을 넣으려고했지만 여전히 인쇄 null입니다. 몇 가지 예제 코드로 나를 도울 수 있습니까? –
나는 빈 세트가있는 속성 중 하나를 사용하여 확인한 해답을 얻었습니다. 감사 –