天天看点

【node.js开发前准备(四)】-配置sequelize一、安装sequelize二、使用sequelize三、不保证原创

一、安装sequelize

1、在【终端】输入

npm install --save sequelize
           
npm install --save mysql2
           

2、【db-config】中添加sequelize配置

,
    sequelize:{
        host:'127.0.0.1',
        dialect:'mysql',
        dialectOptions:{
            // 字符集
            charset:'utf8mb4',
            collate:'utf8mb4_unicode_ci',
            supportBigNumber:true,
            bigNumberStrings:true
        },
        pool:{
            max:5,
            min:0,
            acquire:30000,
            idle:10000
        },
        define:{
            freezeTableName:true,
            timestamps:false,
            paranoid:false,
            operatorsAliases:false
        },
        timezone:'+08:00'
    }
           

二、使用sequelize

1、新建【model】文件夹,添加【user】的Model

【node.js开发前准备(四)】-配置sequelize一、安装sequelize二、使用sequelize三、不保证原创

内容代码示例:

module.exports = function(sequelize,DataTypes){
    return sequelize.define(
        'user',
        {
            userid:{
                type: DataTypes.BIGINT,
                primaryKey: true,
                autoIncrement: true
            },
            userrolecode:{
                type: DataTypes.STRING,
                field: 'userrolecode'
            },
            username:{
                type: DataTypes.STRING,
                field: 'username'
            },
            userphone:{
                type: DataTypes.STRING,
                field: 'userphone'
            },
            userpassword:{
                type: DataTypes.STRING,
                field: 'userpassword'
            },
            userdepartment:{
                type: DataTypes.STRING,
                field: 'userdepartment'
            },
            userzzname:{
                type: DataTypes.STRING,
                field: 'userzzname'
            },
            userzzprincial:{
                type: DataTypes.STRING,
                field: 'userzzprincial'
            },
            userzzphone:{
                type: DataTypes.STRING,
                field: 'userzzphone'
            },
            userkey:{
                type: DataTypes.STRING,
                field: 'userkey'
            },
            userorganization:{
                type: DataTypes.STRING,
                field: 'userorganization'
            },
            userorganizationcode:{
                type: DataTypes.STRING,
                field: 'userorganizationcode'
            }
        }
    );
}
           

2、为了统一管理模型,在【model】里新建【index.js】文件

【node.js开发前准备(四)】-配置sequelize一、安装sequelize二、使用sequelize三、不保证原创

内容示例代码为:

// 统一管理模型
const config=require('../config/db-config');
const Sequelize = require("sequelize");
const {QueryTypes,DataTypes} = require("sequelize");

var sequelizeObj = new Sequelize(
    config.mysql.database,
    config.mysql.user,
    config.mysql.password,
    config.sequelize);

const user = require('../model/user')(sequelizeObj,DataTypes)   // 用户表
const role = require('../model/role')(sequelizeObj,DataTypes)   // 角色表

role.hasMany(user,{   // 一对多
    foreignKey:'userrolecode',
    sourceKey:'roleid'   //源模型
})

user.belongsTo(role,{   // 一对一
    foreignKey:'userrolecode',
    targetKey:'roleid'    //目标模型
    //表示user表中的roleid属性指role表中的id属性
})

module.exports = {user,role}
           

3、在【userDao】中添加sequelize方法

【node.js开发前准备(四)】-配置sequelize一、安装sequelize二、使用sequelize三、不保证原创

示例代码:

const allSqlAction=require('../lib/mysql')
const {user,role}=require('../model/index')

// 连接和使用数据库=>操作数据库
module.exports={
    // 根据手机号查找用户
    searchUserByPhone:async(query)=>{
        try{
            console.log("传到userDao的查询条件为:")
            console.log(query)
            let result=await user.findAll({
                where:{
                    'userphone':query
                },
                include:[role]
            });
            return result;
        }catch(error){
            console.log("根据手机号查找用户错误:" + error); 
            return null;
        }
    },
    // 查找所有的角色
    searchAllRoles:async(rolename)=>{
        try{
            let result=await role.findAll({
                attributes:['roleid','rolename'],
                 raw:true,
            })
            return result;
        }catch(error){
            console.log("查找用户角色错误:" + error);
        }
    }
}
           

三、不保证原创

内容来自学习课件ppt,不保证原创

继续阅读