Sequelize操作数据库(包括模型,增,删、改)

// Using NPM
$ npm install --save sequelize
// 使用哪种数据库选择不同的安装
$ npm install --save mysql2

连接数据库的配置
1、dbUrl.js

const dbUrl = {
    host: 'localhost',
    user: 'root',
    password: 'root',
    database: 'realworld',
    dialect: 'mysql'  
}
module.exports = dbUrl
const Sequelize = require('sequelize');
const dbUrl = require('../config/config.default')
// database数据库名称   name 用户  password密码

const sequelize = new Sequelize(
    dbUrl.database,
    dbUrl.user,
    dbUrl.password,
    {
        host: dbUrl.host,  //数据库域名
        dialect:dbUrl.dialect,
        // 设置时区
        timezon: '+08:00',
        define: {
            timestamps: false //为模型添加 createdAt 和 updatedAt 两个时间戳字段(true or false)
        },
        pool: {
            max: 5,
            min: 0,
            idle: 10000
        }
    });
sequelize
    .authenticate()
    .then(() => {
        console.log('Connection has been established successfully.');
    })
    .catch(err => {
        console.error('Unable to connect to the database:', err);
    });


module.exports = sequelize

运行项目 显示连接成功
定义mode


const users = db.define('t_user'/*自定义表名*/, {
    id: {
        type: Sequelize.INTEGER,
        primaryKey: true,       //主键
        autoIncrement: true,    //自增
        comment: "自增id"       //注释:只在代码中有效
    },
    //用户名
    username: {
        type: Sequelize.STRING,
        validate:{
	        isEmail: true,   //类型检测,是否是邮箱格式
        }
    },
    //密码
    pwd: {
        type: Sequelize.STRING(10),
        allowNull: false,//不允许为null
    },
    //状态
    status: {
        type: Sequelize.INTEGER,
         defaultValue: 0,//默认值是0
    },
    //昵称
    nickname: {
        type: Sequelize.STRING
    },
    //token
    token: {
        type: Sequelize.UUID
    },
    create_time: {
        type: Sequelize.DATE,
        defaultValue: Sequelize.NOW
    }
}, {
    //使用自定义表名
    freezeTableName: true,
    //去掉默认的添加时间和更新时间
    timestamps: false,
    indexes:[
	    //普通索引,默认BTREE
        {
            unique: true,
            fields: ['pid']
        },
     ]
});

//同步:没有就新建,有就不变
// users.sync();
//先删除后同步
users.sync({
    force: true
});

单表的增删改

let user = UsersModel.build({
   username: "swnd",
   password: "q11111"
});
user = await user.save();
console.log(user.get({'id': 3}));

const hasUser = await UsersModel.findOne({
  where: {
    id: 6,
    username: 'zhangsan'
  }
});
hasUser.username = 'wanggangdan'
hasUser.save();

const hasUser = await UsersModel.findOne({
  where: {
    id: 3
  }
});
await hasUser.destroy();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘴巴嘟嘟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值