まずはMongoDBのインストールが必要です。MondoDBのサイトから本体をダウンロードしてください。
ダウンロードした圧縮ファイルを適当な場所に解凍したら、ターミナルから次のように実行します。
c:\mongodb\bin\mongod.exe --dbpath d:\mongodb\data
見てのとおり、これはWindows版MongoDBの使用例ですが、これで mongod (MongoDBのデーモン) が立ち上がります。
d:\mongodb\data はデータファイルの置き場所です。
MongoDBの準備はたったのこれだけです。
では、いよいよMongoDB+Expressなサンプルアプリのソースコードを見てみましょう。
package.json
{ "name": "example-app", "description": "an example using 'mongoDB' on 'Express'", "version": "0.0.1", "private": true, /* 誤って公開してしまうことを防ぎます */ /* 依存関係 */ "dependencies": { "express": "3.x", /* Express */ "mongodb": "*", /* MongoDB */ "mongoose": "*" /* MongoDB Object Modeling Tool */ } }
server.js
var express = require('express'); var mongoose = require('mongoose'); var app = express(); // connect to mongodb. mongoose.connect('mongodb://localhost/mydata'); // define a schema. var kittySchema = mongoose.Schema({ name: String }); // define a method to the schema. kittySchema.methods.speak = function () { var greeting = this.name ? "Meow name is " + this.name : "I don't have a name" console.log(greeting); }; // create a model. var Kitten = mongoose.model('Kitten', kittySchema); /* define routings. */ app.get('/save/:name', function(req, res) { var message = null; // create a new Kitten instance. var kitten = new Kitten({ name: req.params.name }); // save a kitten. kitten.save(function (err, object) { if (err) { message = { message: err }; } else { message = { message: object.name + ' saved!' }; } res.send(message); }); }); app.get('/find', function(req, res) { var message = null; // find all kittens. Kitten.find(function (err, kittens) { if (err) { message = { message: err }; } else { message = kittens; } res.send(message); }); }); app.get('/remove', function(req, res) { // remove all from mongodb. Kitten.remove({}, // onsuccess function () { res.send({ message: 'All kittens removed.'}); }, // onerror function (err) { res.send({ message: err }); }); }); app.listen(3000); console.log('Listening on port 3000...');
MongoDBもExpressもとてもシンプルなフレームワークなので、初めての方でも大まかに理解できると思います。
モデル
Kittenとは "name" というたった一つのプロパティを持つKittySchemaから作られた単純なモデルです。Kittenモデルは、それ自体が save() や find() などを持った、いわゆるアクティブオブジェクトです。
URIルーティング
app.get(...) ではURIルーティングを定義しています。これはExpressフレームワークの機構です。
では、サンプルアプリを実行してみましょう。
と、その前にアプリに必要モジュールをインストールする必要があります。ターミナルからソースコードを置いたフォルダに移動して、下のようにコマンドを入力してください。
$ npm install
package.json にもとづいて、アプリに必要なモジュールがインストールされました。
では、今度こそサンプルアプリを起動してみましょう。
$ node server.js
Listening on port 3000...
アプリが起動したら、ブラウザから下記のURLを順番に叩いてみて下さい。Kittyモデルの登録、検索、削除が確認できるはずです。レスポンスはWeb APIによくありがちなJSONオブジェクトです。
http://localhost:3000/save/Mike
http://localhost:3000/save/Tama
http://localhost:3000/find
http://localhost:3000/remove
http://localhost:3000/find
0 件のコメント:
コメントを投稿