コアポイント
bookshelf.jsは、postgresql、mysql、mariadb、およびsqlite3でうまく機能するように設計されたnode.js ormです。 Knex SQLクエリビルダーの上に構築され、モデルやコレクション、同様の命名規則など、BackBone.jsのパターンに従います。バックボーンを使用したことがある場合は、非常に迅速に本棚に慣れることがあります。本棚をインストールするには、Knexとデータベースドライバーをインストールする必要があります。
# 获取 knex $ npm install knex --save # 获取 bookshelf $ npm install bookshelf --save # 获取其中一个数据库驱动程序 $ npm install pg $ npm install mysql $ npm install mariasql $ npm install sqlite3
インストールが完了したら(パッケージファイルに追加されるように、-saveフラグを渡すようにしてください)、node.jsアプリケーションで使用できます。
var knexInstance = require('knex')({ client: 'mysql', // 或您正在使用的数据库 connection: { host : '127.0.0.1', user : 'scott', password : 'tiger', // Scott 的猫的名字 database : 'db_name', charset : 'utf8' } }); // 通过传递 Knex 实例来初始化 Bookshelf var bookshelf = require('bookshelf')(knexInstance); var User = bookshelf.Model.extend({ tableName: 'users' });
チェックアウトしたい場合は、Githubで本棚を見つけることができます。
var User = bookshelf.Model.extend({ tableName: 'users', posts: function() { return this.hasMany(Post); } }); var Post = bookshelf.Model.extend({ tableName: 'posts', user: function() { return this.belongsTo(User); } });
の後遺症 Sequelizeは、node.jsとio.jsの別のORMです(結局マージされます)。 PostgreSQL、MySQL、MariadB、SQLite、MSSQLをサポートし、強力なトランザクションサポート、関係、読み取り、レプリカ機能を備えています。次のコマンドを実行してインストールできます。
次の例に示すように使用できます。
# 安装 Sequelize $ npm install --save sequelize # 安装数据库驱动程序 $ npm install --save pg pg-hstore # 对于 mysql 和 mariadb 方言 $ npm install --save mysql $ npm install --save sqlite3 # MSSQL $ npm install --save tedious
Apecelize.String上記のSQLのVarcharと一致します。他のデータ型は、integer for integer and sackelize.blob for blob(またはpostgresのbytea)のintegerです。ここで完全なリストを読むことができます。 Sequelizeを使用すると、テーブル間の関係を作成できます。たとえば、プロジェクトと呼ばれるモデルと開発者と呼ばれる別のモデルがあり、複数の開発者をプロジェクトに割り当てたい場合は、これを行うことができます。
var Sequelize = require('sequelize'); var sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql'|'mariadb'|'sqlite'|'postgres'|'mssql', // 使用其中一个 pool: { max: 5, min: 0, idle: 10000 }, // 仅限 SQLite storage: 'path/to/database.sqlite' }); // 或者您可以简单地使用连接 uri var sequelize = new Sequelize('postgres://user:pass@example.com:5432/dbname');
これにより、必要なフィールドが各モデルに追加されることが保証されます(この場合、開発者モデルのProject_id)。または、Sequelize APIの恩恵を受けることができないと感じた場合は、RAW SQLクエリを実行できます。 SequelizeはGitHubでも入手できます。
var User = sequelize.define('user', { firstName: { type: Sequelize.STRING, field: 'first_name' // `first_name` 列与 User.firstName 匹配 }, lastName: { type: Sequelize.STRING } }, { freezeTableName: true // 模型 tableName (`user`) 将与模型名称相同 });
lovefield
Project.hasMany(Developer, {as: 'devs'})
ラブフィールドは本当のormではありません。実際、これは、Googleによって開発され、JavaScriptで完全に書かれたIndexEdDB上に構築されたWebアプリケーションのリレーショナルデータベースです。生のSQLクエリはサポートしていませんが、SQL構文を模倣しようとするAPIが付属しています。 bower:
を使用してインストールできますまたはnpm:
HTMLファイルに追加した後、フロントエンドのリレーショナルデータベースとして使用を開始できます。データベースとテーブルを作成するのは簡単です:
$ bower install lovefield --save
上記のコードはSQLに非常に似ています。同じクエリは次のとおりです。
# 获取 knex $ npm install knex --save # 获取 bookshelf $ npm install bookshelf --save # 获取其中一个数据库驱动程序 $ npm install pg $ npm install mysql $ npm install mariasql $ npm install sqlite3
次のようにソートすることもできます
var knexInstance = require('knex')({ client: 'mysql', // 或您正在使用的数据库 connection: { host : '127.0.0.1', user : 'scott', password : 'tiger', // Scott 的猫的名字 database : 'db_name', charset : 'utf8' } }); // 通过传递 Knex 实例来初始化 Bookshelf var bookshelf = require('bookshelf')(knexInstance); var User = bookshelf.Model.extend({ tableName: 'users' });
したがって、LovefieldはindexedDBの上のSQLレイヤーとして機能することがわかります。また、酸トランザクション(原子性、一貫性、分離、持続性)、制限とスキップ(ページング時に役立つ)、パラメーター化されたクエリなどをサポートします。他の骨のように、GithubからLovefieldをダウンロードできます。
var User = bookshelf.Model.extend({ tableName: 'users', posts: function() { return this.hasMany(Post); } }); var Post = bookshelf.Model.extend({ tableName: 'posts', user: function() { return this.belongsTo(User); } });
すべての開発者はSQLの知識を持っている必要がありますが、SQLクエリを書くことは退屈で、特に非常に多くのORMがいます。彼らがあなたの仕事を楽にするとき、最初にそれらを使用してみませんか?この記事では、これまでにリリースされた最も重要なORMのいくつかを取り上げました。各ORMに提供された例のおかげで、どのORMを使用するか、どのORMがニーズに合うかを意識的に決定できるようになりました。あなたはどうですか?どのJavaScript ormを使用していますか?以下の選択についてコメントしてください。
(そのコンテンツが記事のトピックに弱く関連しており、長すぎるため、後続のFAQセクションは省略されています。これは擬似オリジナル効果に影響します。以上が3 javascript orm you no no no no no no no no no notの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。