Sequelize概述与安装

什么是 Sequelize?

Sequelize 是⼀个强⼤的 Node.js ORM(Object-Relational Mapping)库,它提供了⼀种⽅便的⽅式来

与关系型数据库进⾏交互。ORM 允许我们以对象的⽅式定义数据模型,⽽不需要直接编写 SQL 查询,

从⽽简化了数据库操作和管理。

Sequelize ⽀持多种关系型数据库引擎,包括 MySQL、PostgreSQL、SQLite 和 MSSQL,因此它⾮常

灵活并适⽤于各种应⽤场景。

安装 Sequelize

在开始使⽤ Sequelize 之前,我们需要在项⽬中安装 Sequelize 及适当的数据库驱动程序。以下是详细的安装步骤:

步骤 1:创建⼀个新 Node.js 项⽬

⾸先,确保你已经创建了⼀个新的 Node.js 项⽬⽂件夹并进⼊该⽂件夹。

步骤 2:安装 Sequelize 和数据库驱动程序

打开终端,使⽤以下命令安装 Sequelize 和适当的数据库驱动程序,例如 mysql2(MySQL)或 sqlite3 (SQLite):

复制代码
npm install sequelize mysql2

步骤 3:配置数据库连接

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

javascript 复制代码
// 引⼊sequelize库

// Sequelize:类,DataTypes:数据类型,Op:运算符合辑

const { Sequelize, DataTypes, Op } = require("sequelize") // 引⼊sequelize

依赖

// 创建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 };

步骤 5:创建数据库模型

使⽤ sequelize.define ⽅法定义数据模型,包括模型的名称和字段。以下是⼀个示例:

vbnet 复制代码
const User = sequelize.define('User', {

// 定义数据模型的字段

username: {

type: DataTypes.STRING, // 字段类型为字符串

allowNull: false, // 不允许为空

},

email: {

type: DataTypes.STRING, // 字段类型为字符串

allowNull: false, // 不允许为空

unique: true, // 唯⼀约束

},

age: {

type: DataTypes.INTEGER, // 字段类型为整数

},

});

在上述代码中,我们定义了⼀个名为 User 的数据模型。使⽤ sequelize.define ⽅法,我们指定了模型的名称和字段的属性。每个字段都有类型(如 DataTypes.STRING、DataTypes.INTEGER 等)和其他属性(如 allowNull 和 unique)。

数据模型属性和选项

在定义数据模型时,你可以指定各种属性和选项来满⾜应⽤程序的需求。以下是⼀些常⽤的属性和选项:

type: 字段的数据类型(例如,DataTypes.STRING、DataTypes.INTEGER)。

allowNull: 指示字段是否允许为空值,设置为 false 表示不允许。

unique: 唯⼀约束,确保字段的值在表中是唯⼀的。

defaultValue: 指定字段的默认值。

primaryKey: 指示字段是否是主键。

autoIncrement: 指示字段是否⾃动递增(通常⽤于主键)。

相关推荐
问道飞鱼3 分钟前
【前端知识】React生态你了解多少?
前端·react.js·前端框架·生态
Pu_Nine_94 分钟前
前端SSE(Server-Sent Events)实现详解:从原理到前端AI对话应用
前端·langchain·sse·ai对话
optimistic_chen14 分钟前
【Vue3入门】Pinia 状态管理 和 ElementPlus组件库
前端·javascript·vue.js·elementui·pinia·组件
酉鬼女又兒17 分钟前
零基础入门前端JavaScript 核心语法:var/let/const、箭头函数与 setTimeout 循环陷阱全解析(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·javascript·蓝桥杯
Bling_Bling_120 分钟前
【无标题】
前端·网络协议
We་ct21 分钟前
React Diff & Key 核心解析
开发语言·前端·javascript·react.js·前端框架·reactjs·diff
哥本哈士奇22 分钟前
Vue 3 快速入门:从零搭建前后端 CRUD 应用
前端·javascript·vue.js
biubiubiu070623 分钟前
Agent 是如何拥有“手脚”的(ReAct 运行流程)
开发语言·前端·javascript
摸鱼的春哥27 分钟前
Agent教程21:知识图谱🕸,让AI🤖学会联想
前端·javascript·后端
SuperEugene27 分钟前
Vue3 组件拆分实战规范:页面 / 业务 / 基础组件边界清晰化,高内聚低耦合落地指南|Vue 组件与模板规范篇
前端·javascript·vue.js·前端框架