iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 14
0
Modern Web

認識 Sails.js - 如何建構一個 MVC 網站系列 第 14

認識 Sails.js - 設定 Sails Sequelize Hook

這個範例將使用 MySQL 資料庫,所以我們採用 Sequelize,網路上已經有別人寫好的 hook 叫 sails-hook-sequelize,可以讓 sequelize 跟 sails 連接。

原始碼範例

安裝 sequelize hook

npm install mysql --save
npm install sails-hook-sequelize --save

編輯 .sailsrc

{
  "generators": {
    "modules": {}
  },
  "hooks": {
    "orm": false,
    "pubsub": false,
    "grunt": false,
    "sockets": false
  }
}

建立空的 databases

$ mysql -uroot -p
mysql> CREATE SCHEMA sandbox DEFAULT CHARACTER SET utf8mb4;

編輯設定檔

// config/env/development.js
module.exports = {
  models: {
    connection: 'mysql',
    migrate: process.env.MODELS_MIGRATE || 'safe'
  },
  connections: {
    mysql: {
      'user': process.env.MYSQL_ENV_MYSQL_USER_NAME || 'root',
      'password': process.env.MYSQL_ENV_MYSQL_USER_PASS || 'root',
      'database': process.env.MYSQL_ENV_MYSQL_USER_DB || 'sandbox',
      'dialect': 'mysql',
      options: {
        'host': process.env.MYSQL_PORT_3306_TCP_ADDR || '127.0.0.1',
        'port': process.env.MYSQL_PORT_3306_TCP_PORT || 3306,
        'dialect': 'mysql',
        dialectOptions: {
          charset: 'utf8mb4'
        }
      }
    }
  }
};

新增 domain

檔名一定要是大寫

//  api/models/User.js
module.exports = {
  attributes: {
    username: {
      type: Sequelize.STRING,
      allowNull: false,
      unique: true
    },
    password: {
      type: Sequelize.STRING,
      allowNull: false
    }
  },
  associations: function() {},
  options: {
    tableName: 'users',
    classMethods: {},
    instanceMethods: {},
    hooks: {}
  }
};


上一篇
認識 Sails.js - Model 和 ORM
下一篇
認識 Sails.js :Sequelize CRUD
系列文
認識 Sails.js - 如何建構一個 MVC 網站17
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言