Sequelize とは
Node.js用のO/Rマッパー。
O/Rマッパー とは
DBに対してSQLを実行した結果をオブジェクトにマッピングするライブラリ。CRUD処理がある程度実装されているものが多い。
Sequelize の導入
DB設計の段階など、まだDBを作っていないときは
DBを定義した雛形ファイルを作ってマイグレーションする。
nodejs + express + sequelize webサーバ最小構成
既存のDBスキーマからmodelを作りたい
フレームワークで用意されていることが多い。
[例]
SAStruts: gen-entity
C# MVC.NET: scaffold
Rails: migration
sequelize-auto
sequelize-autoを使ってみる。
sequelize-autoをグローバルにインストール
$ npm install -g sequelize-auto
mysqlをグローバルインストール(mysql2を要求される場合も)
$ npm install -g mysql
sequelize-autoを実行する
$ sequelize-auto -h <ホスト名> -d <データベース名> -u <ユーザ名> -x [パスワード] -p [ポート番号] --dialect [例:mysql] -c -o [出力ディレクトリ]
sequelizeで自動生成したmodelをインポートする
requireなどでインポートしても、sequelizeのメソッドが使えないので
sequelize.import(<相対パス>)
とする必要がある。
var findAll = function findAll(callback) {
const player=sequelize.import('../models/player');
player.findAll({attributes: ['id', 'name','team_id']})
.then((record) => {
callback(setResult(200, record, null));
})
.catch((err) => {
callback(setResult(500, null, err));
});
};