まずは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 件のコメント:
コメントを投稿