こんにちは、中の人です。
DynamoDBで取得したデータをNode.jsで取得して表示する準備として以下を紹介しておりました。
第1回 Node.jsインストール編
第2回 Nginxで80番ポートに変更編
第3回 DynamoDBへの接続編
今回はDynamoDBから取得したデータをNode.js上に表示させます。
1. dashBoard/app.jsに追記した内容の削除
前回の設定で接続確認できたので、app.jsから削除します。
2. dashBoard/routes/index.jsの編集し、DynamoDBで取得した値をviewに渡します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var express = require('express'); var router = express.Router(); var aws = require('aws-sdk'); aws.config.loadFromPath('./config.json'); var dynamodb = new aws.DynamoDB(); router.get('/', function(req, res) { dynamodb.scan({TableName: "テーブル名", Select: "ALL_ATTRIBUTES", }, function (err, datas) { res.render('index', { title: “タイトル”, datas: datas }) }); }); |
3. View側で受け取った時の処理を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 |
dashBoard/views/index.js <% for ( var key in datas ) { for ( var key2 in datas[key] ) { for ( var key3 in datas[key][key2] ) { for ( var key4 in datas[key][key2][key3] ) { %> <%= datas[key][key2][key3][key4] %> <% } } } } %> |
4. nodeを再起動させます。
1 |
$ npm start |
起動してブラウザにアクセスするとExpressのデフォルト画面の下にDynamoDBのテーブルの値が表示されます。
後はフォーマット等を加工することでグラフ表示や表に対する出力を行うことが出来ます。
いかがでしたでしょうか?
DynamoDBの高速なKVSと使い勝手良くノンブロッキングI/OであるNode.jsを組み合わせる事で複雑な表などを高速に表示することが出来ます。
次回をお楽しみに!