Heroku の Node.js アプリで MongoDB を使用する方法
Heroku で Node.js のアプリケーションを作る際にデータベースを使用する際に MongoDB を使用する事が多いので。 http://gihyo.jp/dev/serial/01/nodejs/0005 を参考にやってみた。
MongoDB をインストールしてないようならbrewでインストール
brew install mongodb
これで
mongod --nojournal --noprealloc --dbpath <データディレクトリパス>
のようにディレクトリを指定するとmongoサーバが動き出す。 そしてjsで使えるようにnpmでMongoose のインストール
npm install mongoose --save
https://devcenter.heroku.com/articles/mongolab を参考に
heroku addons:add mongolab
とするとそれでもう Heroku で MongoDB が使える。 以下のようにjsを書いて MongoDB が正しく使えるか確かめてみる。 1行目は mongolab のURLが取れなかったら localhost のsample を使うというコードである。こうすることによりローカル環境と Heroku の環境で同じコードで動かす事ができる。
var MONGO_URL = process.env.MONGOLAB_URI || 'mongodb://localhost/sample';
var mongoose = require('mongoose');
var db = mongoose.connect(MONGO_URL);
function validator(v) {
return v.length > 0;
}
var Category = new mongoose.Schema({
id : { type: Number, index: {unique: true, dropDups: true }},
name : { type: String, validate: [validator, "Empty Error"] },
});
var category = new Category({
id: 1,
name: ほげ
});
category.save();
みたいにすると categorys に insert される。