当前位置: 首页 > 工具软件 > Sequelize > 使用案例 >

sequelize的使用

束雅达
2023-12-01

什么是sequelize?

sequelize是一个orm框架,什么是orm呢?即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。

安装依赖

知道了sequelize是什么,很想在项目中使用起来吧!那接下来开始我们的第一步吧!在项目的根目录运行 npm i mysql2 sequelize -S

创建sequelize连接配置文件

依赖也有了,下面我们创建sequelize的配置文件吧!在项目的根目录下新建src目录,并在目录中新建seq.js文件。

const Sequelize = require('sequelize')

const conf = {
    host: 'localhost',
    dialect: 'mysql'
}

const seq = new Sequelize('koa2_weibo_db', 'root', '111111', conf)

// 测试连接
seq.authenticate().then(() => {
     console.log('ok')
}).catch(() => {
     console.log('err')
})

module.exports = seq

写完后可以使用node命令运行一下,如果命令行输出了ok,那就恭喜你成功了,是不是很简单~

创建模型并同步数据表

接下来还有一点准备工作要进行,有了配置文件还不够,我们还需要创建模型和同步数据表的文件。在src目录新建model.jssync.js文件

// model.js
const Sequelize = require('sequelize')
// 数据库配置文件
const seq = require('./seq')

// 创建 users 模型
const User = seq.define('user', {
    // id 会自动创建,并设为主键、自增
    userName: {
        type: Sequelize.STRING,
        allowNull: false,
        comment: '用户名'
    },
    password: {
        type: Sequelize.STRING,
        allowNull: false,
        comment: '密码'
    },
    nickName: {
        type: Sequelize.STRING,
        comment: '昵称'
    }
    // 自动创建 createdAt updatedAt
})

module.exports = {
    User
}

同步数据表

const seq = require('./seq')

require('./model')

// 测试连接
seq.authenticate().then(() => {
    console.log('ok')
}).catch(() => {
    console.log('err')
})

// 执行同步
// force 值为 true 时,表示每次执行这个方法都会先将表给删掉,再重新创建
seq.sync({ force: true }).then(() => {
    console.log('sync ok')
    process.exit()
})

插入数据

从现在开始,终于到了实战的时候了。现在我们的数据库中有了blogsusers两张表,但是我们还没有数据。那我们就添加 数据吧!在src目录新建create.js文件。

const { User, Blog } = require('./model')

// 如果前面写的报错的,也会执行后面的
!(async function () {
    // 创建用户
    const person = await User.create({
        userName: 'lisi',
        password: '123',
        nickName: '李四'
    })
    console.log('person: ', person.dataValues)

    const blog = await Blog.create({
        title: '标题4',
        content: '内容4',
        userId: person.dataValues.id
    })
    console.log('blog: ', blog.dataValues)
})()

使用node运行一下这个文件

 类似资料: