Node.js
MySQL
sequelize

Sequelize-Autoを使ってみた。

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