Sequelize

105 阅读2分钟

定义:
Sequelize 是⼀个强⼤的 Node.js ORM(Object-Relational Mapping)库,它提供了⼀种⽅便的⽅式来 与关系型数据库进⾏交互。ORM 允许我们以对象的⽅式定义数据模型,⽽不需要直接编写 SQL 查询, 从⽽简化了数据库操作和管理。
Sequelize ⽀持多种关系型数据库引擎,包括 MySQL、PostgreSQL、SQLite 和 MSSQL,因此它⾮常 灵活并适⽤于各种应⽤场景。

1、安装Sequelize

        npm install sequelize mysql2

2、配置数据库连接
在项⽬根⽬录下创建⼀个⽂件夹config(名称可以⾃⼰取,看个⼈习惯),创建⼀个database.js(名称 可以⾃⼰取,看个⼈习惯)⽂件,配置数据库连接信息,包括数据库名称、⽤户名和密码。

        // 引入sequelize库
        // Sequelize:类,DataTypes:数据类型,Op:运算符合辑
        const { Sequelize, DataTypes, Op } = require("sequelize") // 引入sequelize依赖

        // 创建Sequelize实例
        // new Sequelize(要连接的数据库,数据库账号,数据库密码,配置项)
        const sequelize = new Sequelize('mine', 'root', '12345678', {
            host: 'localhost',
            dialect: 'mysql',
            port: 3306,
            logging: (sql) => {
                console.log(sql); // 将 SQL 查询日志打印到控制台
            },
            dialectOptions: {
                logQueryParameters: true, // 显示实际参数值
            },
            timezone: '+08:00', // 设置为中国的时区(北京时间,UTC+8)
        });

        // 数据库提示信息
        sequelize.authenticate()
            .then(() => {
                console.log('数据库连接成功');
            })
            .catch((err) => {
                console.log('数据库连接失败', err);
            });

        // 导出实例
        module.exports = { sequelize, DataTypes, Op };

3、创建数据库模型
使⽤ sequelize.define ⽅法定义数据模型,包括模型的名称和字段。

      const { sequelize, DataTypes, Op } = require("../config/database");

    const ToDo = sequelize.define('todo', {
        id: {
            type: DataTypes.BIGINT,
            primaryKey: true,
            autoIncrement: true,
            allowNull: false,
            comment: "主键"
        },
        content: {
            type: DataTypes.STRING(255),
            allowNull: true,
            defaultValue: null
        },
        status: {
            type: DataTypes.TINYINT,
            allowNull: true,
            defaultValue: null,
            defaultValue: 1
        },
    }, {
        tableName: 'todo',
        timestamps: false,
    });


    module.exports = ToDo;

在定义数据模型时,你可以指定各种属性和选项来满⾜应⽤程序的需求。以下是⼀些常⽤的属性和选 项:
type: 字段的数据类型(例如,DataTypes.STRING、DataTypes.INTEGER)。
allowNull: 指示字段是否允许为空值,设置为 false 表示不允许。
unique: 唯⼀约束,确保字段的值在表中是唯⼀的。
defaultValue: 指定字段的默认值。
primaryKey: 指示字段是否是主键。
autoIncrement: 指示字段是否⾃动递增(通常⽤于主键)。