Posted at

Sequelize-Autoを使ってみた。

More than 1 year has passed since last update.


Sequelize とは

Node.js用のO/Rマッパー。


O/Rマッパー とは

DBに対してSQLを実行した結果をオブジェクトにマッピングするライブラリ。CRUD処理がある程度実装されているものが多い。


Sequelize の導入

O/Rマッパー Sequelize による DB 連携

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));
});
};