美文网首页Nodejs
NodeJs+Koa学习6、Sequelize Orm生成MyS

NodeJs+Koa学习6、Sequelize Orm生成MyS

作者: 那钱有着落吗 | 来源:发表于2022-03-21 11:27 被阅读0次

1. Sequelize连接数据库,配置数据库连接参数

1.1第一步就是做好数据库连接的参数

然后我们在core包下面创建一个db.js 然后写入链接函数:

const Sequelize = require('sequelize')

const {
    dbName,
    host,
    port,
    user,
    password
} = require('../config/config').database

const sequelize = new Sequelize(dbName, user, password, {
    dialect: 'mysql',
    host,
    port,
    logging: true,
    timezone: '+08:00',
    define: {
        // create_time && update_time
        timestamps: true,
        // delete_time
        paranoid: true,
        createdAt: 'created_at',
        updatedAt: 'updated_at',
        deletedAt: 'deleted_at',
        // 把驼峰命名转换为下划线
        underscored: true,
        freezeTableName: true,
        scopes: {
            bh: {
                attributes: {
                    exclude: ['updated_at', 'deleted_at', 'created_at']
                }
            }
        }
    }
})


// 创建模型
sequelize.sync({
    force: false
})

module.exports = {
    sequelize
}

在上面define: 中有定义

 // create_time && update_time
timestamps: true,

这个是由于Sequelize会在生成表的时候额外的多加create_time 和 update_time,这个我们一般都是需要的,而且平时操作不用关系,Sequelize会帮我们维护这三个信息。

还想了解的可以去Sequelize官网查看。

2.创建模型

我们先来创建一个user模型:


const bcrypt = require('bcryptjs')

const {sequelize} = require('../../core/db');
const {Sequelize, Model} = require('sequelize');

// 定义用户模型
class User extends Model {

// 初始用户模型
User.init({
    id: {
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
    },
    nickname: Sequelize.STRING,
    email: {
        type: Sequelize.STRING(128),
        unique: true
    },
    password: Sequelize.STRING,
    openid: {
        type: Sequelize.STRING(64),
        unique: true
    },
}, {
    sequelize,
    tableName: 'user'
})


module.exports = {
    User
}

2.1 在app.js导入user
2.2 同步打开

// 创建模型
sequelize.sync({
force: false
})

会自动的执行刚刚写的user的model给持久化到数据库中。

其中force: false,如果为true,意思是每次都会删掉之前根据model持久化的表,然后重新的根据现在的model初始化一次数据表。

2.3 写入数据库

到这里都很简单了,就是使用Sequelize这个工具包而已,CRUD都可以到官网查看即可。


相关文章

网友评论

    本文标题:NodeJs+Koa学习6、Sequelize Orm生成MyS

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