質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

1回答

1599閲覧

AWS Lambdaで特定の情報をある分だけDynamoDBに保存したい

YumaYamada

総合スコア30

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2016/09/11 10:10

###前提・実現したいこと
AWS Lambda(Node.js)+DynamoDBでアプリのバックエンドを開発しています。
プレイリストを作成する機能をもった音楽系のアプリなのですが、ユーザーが登録した分だけの楽曲情報を繰り返し処理などである数だけDynamoDBに保存したいです。

###該当のソースコード

javascript

1 2"use strict"; 3let AWS = require('aws-sdk'); 4var fs = require('fs'); 5AWS.config.apiVersions = { 6 dynamodb: '2012-08-10' 7}; 8 9let dynamo = new AWS.DynamoDB(); 10 11 12exports.handler = function(event, context) { 13 14 var param ={ 15 TableName: "Playlist", 16 Item:{ 17 "songinfo": { //楽曲情報 18 L:[{M:{ "Songtitle" : {S : event["body-json"].songinfo["0"].Songtitle}}}, 19 {M:{ "Songtitle" : {S : event["body-json"].songinfo["1"].Songtitle}}}, 20 {M:{ "Songtitle" : {S : event["body-json"].songinfo["2"].Songtitle}}} 21 ] 22 }, 23 }; 24 25 dynamo.putItem(param, function(err, data) { 26 if (err) console.log(err, err.stack); // an error occurred 27 else console.log(data); // successful response 28}); 29 30};

現状songinfoの配列をハードコードしてしまっているため、この箇所を何曲でも入れられるように対応したいです。

###補足情報(言語/FW/ツール等のバージョンなど)
クライアント側でのPOSTはpostmanを使用しています。
AWSはLambda(Node.js4.3),DynamoDB,API GW(POST)を使用しています。

その他不備がありましたらご教示いただけますと幸いです。
以上、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

"songinfo"のLのところを空の配列にして、
eventに入っているsonginfoをループで回して入れていく感じではダメですかね?
※以下コードは適当に書いてみたので、ちゃんと動くか分かりませんが、、

ver param ={ TableName: "Playlist", Item:{ "songinfo": { //楽曲情報 L:[] }, } }; for(ver x of event["body-json"].songinfo){ param.Item.songinfo.L.push({M:{ "Songtitle" : {S : x.Songtitle}}}); }

投稿2022/01/05 09:08

teltel07

総合スコア42

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問