Sequelize+mysql

網上找了不少資料,大多都是雷同的。我這裏也是大同小異 ,只是想記錄一下查閱資料的過程
小白上路,高手勿怪......mysql

首先固然是要安裝 mysql12 和 Sequelize
執行npm i mysql12 --save 和 npm i Sequelize --save
我還手動安裝了一個全局的mysql~~sql

下面來說講工具的使用
navicat + XAMPP 數據庫

navicat 創建數據庫
第一步創建鏈接,如圖:
clipboard.pngnpm

第二步建立數據庫,在任意數據庫右鍵,新建數據庫,如圖:
clipboard.png服務器

第三步建表。建立數據庫成功以後確定要開始建表了對吧,must,如圖:
clipboard.png
字段什麼的就本身建去吧數據庫設計

數據庫設計?很差意思,我也不會設計,233333工具

XAMPP 是幹什麼的呢,我也不是很清楚,反正我使用的這個版本的Navicat中XAMPP 是必須的存在
clipboard.png
簡單的來講XAMPP只是給個人mysql提供了一個服務,使我可以訪問到數據庫
咱們訪問數據庫都是經過localhost 或者 本身的ip ,若是須要別人也能訪問到個人ip相對的數據庫須要設置一個廣域,如圖:ui

clipboard.png

clipboard.png

emmmmmm......這裏設置成0.0.0.0 就ok咯spa


好了好了,咱們要切入正題了設計

sequelize 配置資源池

let Sequelize = require('sequelize');
const database = require('../database');
let _sequelize = new Sequelize('tpzdz', database.name, database.password, database.pool);
module.exports = _sequelize;

database 文件如圖:
clipboard.png

pool中配置資源池
max:最大鏈接數。根據數據庫接收鏈接數相應配置。若是數據庫接收最大鏈接數是100,那麼這裏必須小於100。
min:最小鏈接數。最小指的是我在規定時間內給你保留這麼多個連接,以便你再來的時候我能夠給你直接匹配。這個點一直很差理解,舉個栗子:飯店點餐員,就是連接數。客戶來點餐,就是客戶端請求數據。客戶來了,須要配備一個點餐員,客戶來了隨時響應。可是到了關門的時間了,我就會讓撤銷全部的點餐員。
acquire:等待連接時間。若是客戶端請求服務器 30s內沒有響應就會被拒絕掉,而不會一直請求着。如同打電話,超過期間以後就會提示你「對不起,您撥打的電話暫時無人接聽」,而不是一直「嘟~嘟~」
idle:資源池閒置時間。指的是若是在規定時間內沒有客戶端的請求服務器,那麼超過期間我就會釋放掉個人本次的資源池。

建模
sequelize提供根據數據庫表創建modal,可是本次我使用的是本身手動創建

let Sequelize = require('sequelize');
const database = require('../database');
let db = new Sequelize('tpzdz', database.name, database.password, database.pool);

let t_admin = db.define(
  't_admin',
  {
    id: {
      filed: 'id',
      primaryKey: true,
      type: Sequelize.BIGINT,
      allowNull: false,
      autoIncrement: true
    },
    name: {
      field: 'name',
      type: Sequelize.STRING,
      allowNull: true
    },
    auth: {
      field: 'auth',
      type: Sequelize.STRING,
      allowNull: true
    },
    password: {
      field: 'password',
      type: Sequelize.STRING,
      allowNull: false
    },
    chineseName: {
      field: 'chineseName',
      type: Sequelize.STRING,
      allowNull: true
    }
  },
  {
    tableName: 't_admin',
    timestamps: false,
    freezeTableName: true
  }
);


module.exports = t_admin;

freezeTableName:默認false修改表名爲複數,true不修改表名,與數據庫表名同步
timestamps:是否自動添加時間戳createAt,updateAt

接下就是使用過程了...........








預知後事如何,請聽下回分解。。。。。。。。

相關文章
相關標籤/搜索