美文网首页
Sequelize -- 笔记

Sequelize -- 笔记

作者: 槑小姐_1419 | 来源:发表于2019-03-12 15:44 被阅读0次

    参考自 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<Array<>>
    
    this.tableModels.Users.bulkCreate([
        {mail:'183..@163.com',name:'张三',password:'123',authority:'1'},
        {mail:'183..@163.com',name:'张三',password:'123',authority:'1'}
    ])
    

    5. 查询数据

    findAll()
    findOne()
    
    

    6 更新数据

    update()
    

    相关文章

      网友评论

          本文标题:Sequelize -- 笔记

          本文链接:https://www.haomeiwen.com/subject/xzugpqtx.html