Sequelize -- 笔记

参考自 Sequelize 的官方文档
未完

1. 引入

--- npm 安装

$ npm install sequelize --save
同时需要安装 数据库

# 还需要安装以下之一:
$ npm install --save pg pg-hstore    // postgreSql
$ npm install --save mysql2          // mysql 或 mariadb
$ npm install --save sqlite3  
$ npm install --save tedious        // MSSQL

--- require 引入使用

const Sequelize = require("sequelize");

2. 连接数据库

//  new 一个实例  new Sequelize({database,username,password,host,pool,})
 this.sequelize = new Sequelize({
            database:  database,          //数据库名称
            username: username,        //数据库用户名
            password: password,       //数据库密码
            host: host,         //数据库主机IP  localhost
            dialect: "mysql",         //数据库类型   'mysql'|'mariadb'|'sqlite'|'postgres'|'mssql',
            pool: {              //连接池配置
                max: 5,        //最大连接数
                min: 0,         //最小连接数
                acquire: aquireTimeout,     //请求超时时间
                idle: 10000          //断开连接后,连接实例在连接池保持的时间
            },
            logging: this.logging //输出日志信息  true or false
        });

验证连接上数据库

 this.sequelize
                .authenticate()
                .then(() => {
                    console.log("连接建立成功");
                    resolve();
                })
                .catch(err => {
                    reject();
                    throw new Error(`无法连接数据库:${err.message}`);
                });

部分参数

Name Attribute
database 数据库名
username 数据库用户名.
password 密码
dialect 数据库方式
timezone 时区 默认'+00:00'
logging 日志
pool 连接池 min max idle

3. 创建表

      public define(modelName: String, attributes: Object, options: Object):

 this.tableModels.Users = this.sequelize.define('users', {
            mail: { 
                      type: Sequelize.STRING,      //数据类型  STRING,CHAR,INTEGER,FLOAT,FLOAT  ,BOOLEAN,TEXT(不限长度)
                      primaryKey: true,       // 主键   默认false
                      allowNull: false,         // 是否可以为空  默认true
                      defaultValue: ' 33'                     
            },
            name: { type: Sequelize.STRING, allowNull: false  },
            password: { type: Sequelize.STRING(255) },
            authority: { type: Sequelize.INTEGER(1).UNSIGNED,values: ["1", "8"], }
        }, {
            freezeTableName: true
        });

把表同步到数据库
public sync(options: Object): Promise

this.tableModels.Users.sync({
  force:true,  //   如果表存在 则删除表后重建
  logging:true  // 日志
});

表关系

BelongsTo,BelongsToMany,HasMany,HasOne

4. 插入数据

    public static bulkCreate(records: Array, options: Object): Promise>
this.tableModels.Users.bulkCreate([
    {mail:'[email protected]',name:'张三',password:'123',authority:'1'},
    {mail:'[email protected]',name:'张三',password:'123',authority:'1'}
])

5. 查询数据

findAll()
findOne()

6 更新数据

update()

你可能感兴趣的:(Sequelize -- 笔记)