表題の件でのご質問投稿となります。
以下のコードにて、DynamoDBから取得した値を成型し、戻り値として返す事を考えています。
ですがデバックをしてみると、どうもDBからアイテムをゲットする処理が動いておらず、
return値がNullになってしまいました。
asyncを使用した場合はどこにawaitを入れればいいのかも分からず、
asyncを使用しない場合は最後まで処理されますがreturn値が返ってこずで力尽きてしまいました。
Node.js
1const AWS = require("aws-sdk"); 2require('date-utils'); 3const DynamoDB = new AWS.DynamoDB.DocumentClient({ region: "ap-northeast-1" }); 4 5exports.handler = async (event) => { 6//以下にて、DynamoDBの"No"列から、YYYYMMDD形式の本日の値をparams1に保存。 7 8 var dt = new Date(); 9 var Todaytmp = dt.toFormat("YYYYMMDD"); 10 var Today = Number(Todaytmp); 11 console.log(Today); 12 var params1 = { 13 TableName: 'TableName', 14 Key: { 15 'No': Today, 16 } 17 }; 18 19//移行処理されない。。。 20//処理内容としては、上記で得たYYYYMMDDのデータをプライマリキーとしている、DynamoDBに問い合せ、その行を取得する。 21DynamoDB.get(params1, function(err, data){ 22 if(err){ 23 console.log(err); 24 }else{ 25 console.log(data); 26//色々成型ここから 27 var DBData = JSON.stringify(data); 28 var Call1tmp = DBData.replace(/}|{|"|Item|Call2(.*)|Call1|:|,/g,''); 29 var Call2tmp = DBData.replace(/}|{|"|Item|No(.*)|:|Call1(.*)Call2|,/g,''); 30 var Call3tmp = DBData.replace(/}|{|"|Item|Call4(.*)|:|Call1(.*)Call3|,/g,''); 31 var Call4tmp = DBData.replace(/}|{|"|Item(.*)Call4|:/g,''); 32//色々成型ここまで 33 34 console.log(Call1tmp); 35 console.log(Call2tmp); 36 console.log(Call3tmp); 37 console.log(Call4tmp); 38 39//戻り先の処理しやすいString形式に変換 40 var Call1 = String(Call1tmp); 41 var Call2 = String(Call2tmp); 42 var Call3 = String(Call3tmp); 43 var Call4 = String(Call4tmp); 44 console.log(Call1); 45 console.log(Call2); 46 console.log(Call3); 47 console.log(Call4); 48 return Call1; 49 } 50}); 51}; 52
どうしたら最後まできちんと処理されますでしょうか。
回答1件
あなたの回答
tips
プレビュー