前回の続きで、MongoDBに登録したデータをHTMLに表示する方法を試してみました。
実際に実行してみると大したことはなかったけど、結構調べるのに時間がかかった。
今回はEJSというテンプレートエンジンを使用して表示を試してみました。サーバとブラウザの両方で動作することができます。
server.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
var https = require("https"), fs = require("fs"); var ejs = require("ejs"); var setting = require("./settings.js"); var server = https.createServer(); var temp = fs.readFileSync(__dirname + "/view.ejs" , "utf-8"); var mongo = require("mongodb"); var serverDB = require("mongodb").Server; var sys = require('util'); var users = "users"; var name = "name" var Db = mongo.Db; var array=[],i=0; var db = new Db('nodeDB', new serverDB('127.0.0.1', 27017)); db.open(function(err, db){ if(err){ console.error('DB接続エラー'); throw(err); } console.log('DB接続完了'); // 接続完了後にコレクション取得 collection = db.collection(users); collection.find({}, function(err, cursor) { cursor.each(function(err, DB) { if (DB) {array[i] = DB.name; i++;} }); }); server.on("request", function(req,res){ var data = ejs.render(temp, { name1 : array[0], name2 : array[1], name3 : array[2] }); res.writeHead(200, {"Content-type" : "text/html"}); res.write(data); res.end(); console.log(data); }); }); server.listen(setting.port, setting.host); |
view.ejs
1 2 3 4 5 |
<html> <h1><%= name1 %></h1> <h1><%= name2 %></h1> <h1><%= name3 %></h1> </html> |
表示成功!!