2012-04-10 9 views
11

私はシンプルなデータベース抽象化の実装を探していましたが、偉大な記事http://howtonode.org/express-mongodbが見つかりました。Node.jsデータベースの抽象レイヤー

多分、データベース設定で何らかのオブジェクトリテラルをとることができます。 主な考え方は、UserService-sの実装が異なる可能性がありますが、異なるディレクトリに配置し、必要なものだけを必要とすることです。データベースが必要な場合、私はvar db = "open db object"

var UserService = require(__dirname + '/data-layer/mongodb/user-service).UserService(db);でそれを得るウィル

/data-layer/mongodb/user-service.js 
        /post-service.js 
        /comment-service.js 

/data-layer/couchdb/user-service.js 
        /post-service.js 
        /comment-service.js 

これはそれを行うための正しい方法であるか、または任意のより良い解決策はありますか?

+1

非常に有望なのはJugglingDBです:https://github.com/1602/jugglingdbこちらのドキュメント:http:// jsdoc。info/1602/jugglingdb/ –

+0

これは良いアイデアを得るための場所です。http://mongodb.github.com/node-mongodb-native/github/github.html – christkv

+1

[JSData](http:// www .js-data.io /)。 – orad

答えて

11

NPM経由で利用できるいくつかの解決策、あります

  • Node-DBIは:「ノード-DBIは強くPHP Zend FrameworkのZend_DbのAPIに触発され、SQLデータベース抽象化レイヤライブラリです。これは仕事に統一された機能を提供します。複数のデータベースエンジンで、アダプタークラスを使用しています。現在、サポートされているエンジンはmysql、mysql-libmysqlclient、およびsqlite3です。開発が一時停止されたように見えます。
  • Accessor: "データベースラッパーでデータベースに簡単にアクセスできます。" MySQLとMongoDBのみを現時点でサポートしています。
  • Activerecord "複数のデータベースシステム(SQL、NoSQL、さらにはREST)をサポートするCoffeescriptで書かれたORMと、ID生成ミドルウェア。新しいデータベースシステムとプラグインを追加するために完全に拡張可能です。
7

私は昔の質問の答えを更新する時期かもしれませんが:

あなたdocument-oriented databaseようにMongoDBを使用したい場合は、mongooseは良い選択と(公式サイトからの例)を使用して簡単です:

むしろ現代的なアプローチのために
var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/test'); 

var Cat = mongoose.model('Cat', { name: String }); 

var kitty = new Cat({ name: 'Zildjian' }); 
kitty.save(function (err) { 
    if (err) // ... 
    console.log('meow'); 
}); 

MongoritoES6発電機の代わりに、コールバックを使用して良いODMです。 MariaDB

  • PostgreSQLの
  • MySQLの
  • は06.2015の通り、私はSQLデータベースのNode.js/io.jsとための最良のORMSequelizeには、以下のデータベースをサポートしていることを数えます

  • SQLite
  • MSSQL

セットアップはfairly easy次のとおりです。

var sequelize = new Sequelize('database', 'username', 'password', { 
    host: 'localhost', 
    dialect: 'mysql' 
}); 

// Or you can simply use a connection uri 
var sequelize = new Sequelize('postgres://user:[email protected]:5432/dbname'); 

またtransactionsmigrationsおよび他の多くのグッズを提供します。

+1

SQLベースのデータベースではTrue Sequelize ORMは素晴らしい選択です。 –

+0

@RistoNovik良い点!答えを更新するでしょう:) –

+0

続編を提案してくれてありがとう、それは素晴らしいです:) – kabirbaidhya

関連する問題