以前のブログでMEANスタックについて書き、色々なところで話題になりそれなりによかったかなと思っているところです。MEANは、MongoDB、Express、Angular、Node.jsの頭文字からこう呼ばれていますが、詳しくはブログを読んで下さい:
MongoDBっぽいTingoDB
MEANスタックを教育等で利用する場合ですが、どうもMongoDBのインストールとか設定がちょっと手間かかり何か別のものをという話。
TingoDBはMongoDBのようなインターフェースをもったNoSQLです。サイトにもあるサンプルで比較するといいですが、
MongoDBの場合:
var Engine = require('mongodb'), assert = require('assert'); var db = new Engine.Db('test', new Engine.Server('locahost', 27017)); var collection = db.collection("batch_document_insert_collection_safe"); collection.insert([{hello:'world_safe1'} , {hello:'world_safe2'}], {w:1}, function(err, result) { assert.equal(null, err); collection.findOne({hello:'world_safe2'}, function(err, item) { assert.equal(null, err); assert.equal('world_safe2', item.hello); }) });
TingoDBの場合:
var Engine = require('tingodb')(), assert = require('assert'); var db = new Engine.Db('/some/local/path', {}); var collection = db.collection("batch_document_insert_collection_safe"); collection.insert([{hello:'world_safe1'} , {hello:'world_safe2'}], {w:1}, function(err, result) { assert.equal(null, err); collection.findOne({hello:'world_safe2'}, function(err, item) { assert.equal(null, err); assert.equal('world_safe2', item.hello); }) });
というようにほぼ同じように記述することができます。
TingoDBのインストール
TingoDBのインストールには面倒なことは一切なく、npmでインストールするだけでpackage.jsonに書き込みたいなら--save-dev
とします。
$ npm install tingodb
YEOMANジェネレータ
MEANスタックのYEOMANジェネレータといえば、angular-fullstack ですが
https://www.npmjs.com/package/generator-angular-fullstack
TingoDBを使ったTEAN(?)は無いので自分で作りました。
https://www.npmjs.com/package/generator-angular-eggs
このジェネレータはAngular1系、Angular New Router, TingoDB(like MongoDB), Expressの構成を取っています。angular-fullstackのひよっこにもなっていないのでeggを使っています。e:express, g:Angular, g:Angular New Routerでもあるのですが、sが…。
最後に
ささっとMEANスタックっぽい構成を試したい方はMongoDBの代わりにTingoDBを使ってみるのも良いかと思います。ちなみにgenerator-angular-eggsですが今は
- Angular 1.4.5
- Angular New Router
- Bootstrap v4
- TingoDB
を使っています。