sequelizeをAPIモックで利用する時の初期化メモ
以下のようにDB、テーブル定義を行い....
sequelize.js
'use strict'; var Sequelize = require('sequelize'); var sequelize = new Sequelize('fooDb', 'user', 'pass', { dialect: 'sqlite', storage: 'data/db/db.sqlite3' }); module.exports = sequelize;
Mock.js
'use strict'; var Sequelize = require('sequelize'); var sequelize = require('../sequelize'); var Mock = sequelize.define('mock', { no: Sequelize.INTEGER, patternId: Sequelize.STRING }); module.exports = Mock;
以下のようにモックAPIのデータ保存先として使用するとき...
aaaApi.js
var Mock = require('../../db/models/Mock'); module.exports = function () { return new Promise(function(resolve){ Mock.findAll().then(function(store) { // ... }); }); };
モックサーバ起動時、以下のようにDB定義とテーブル定義を読み込む。
// DB var sequelize = require(path.resolve(__dirname, 'data/db/sequelize')); require(path.resolve(__dirname, 'data/db/models/Mock')); ... http.createServer(app).listen(PORT, function() { sequelize.sync({ force: true }); });
これによりdata/db/db.sqlite3
が生成され、初回起動時のみテーブルの生成が行われる。