介绍
Sequelize.js 是一个 Node.js 的 ORM(Object-Relational Mapping) 框架,它支持多种数据库,包括 MySQL、PostgreSQL、SQLite 和 MSSQL 等。Sequelize.js 提供了强大的数据模型定义和查询 API,可以帮助我们更方便地操作数据库。在本文中,我们将介绍如何在 Express.js 中使用 Sequelize.js 实现 MySQL 数据库连接。
准备工作
在开始之前,我们需要准备好以下工具和环境:
- Node.js 环境
- MySQL 数据库
- Sequelize.js 模块
如果你还没有安装 Node.js,请先前往官网下载并安装:https://nodejs.org/en/
安装 MySQL 数据库请参考官方文档:https://dev.mysql.com/doc/
安装 Sequelize.js 模块可以通过 npm 命令进行安装:
npm install sequelize mysql2 --save
创建 Sequelize 实例
在 Express.js 中使用 Sequelize.js 需要先创建一个 Sequelize 实例,这个实例将作为我们的数据库连接对象。在创建实例时,我们需要传入数据库的连接信息,例如数据库名、用户名、密码等。
const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql', });
上面的代码创建了一个 Sequelize 实例,连接了名为 database
的 MySQL 数据库,使用用户名 username
和密码 password
进行身份验证,数据库的主机地址为 localhost
,使用 MySQL 作为数据库的方言。
定义数据模型
在使用 Sequelize.js 操作数据库时,我们需要先定义数据模型,即定义表结构和字段。Sequelize.js 提供了多种定义数据模型的方式,包括使用模型定义语言(Model Definition Language,MDL)和使用模型类(Model Class)等。
下面是一个使用 MDL 定义数据模型的示例:
-- -------------------- ---- ------- ----- - --------- - - --------------------- ----- ---- - ------------------------ - --- - ----- ------------------ ----------- ----- -------------- ----- -- ----- - ----- ----------------- ---------- ------ -- ---- - ----- ------------------ ---------- ------ -- -- - ----------- ------ ---展开代码
上面的代码定义了一个名为 User
的数据模型,它有三个字段:id
、name
和 age
。其中,id
是主键,自动递增;name
和 age
都是字符串类型,不能为空。最后一个参数是一个选项对象,用来配置模型的一些行为,例如关闭自动生成时间戳(timestamps: false
)。
进行数据库操作
定义好数据模型后,我们就可以使用 Sequelize.js 提供的 API 进行数据库操作了。下面是一些常用的操作示例:
创建表
使用 sequelize.sync()
方法可以根据定义的数据模型创建对应的表。如果表已经存在,它将不会重新创建。
sequelize.sync() .then(() => { console.log('Tables created'); }) .catch((err) => { console.error('Error creating tables:', err); });
插入数据
使用 Model.create()
方法可以向数据库中插入一条新数据。
-- -------------------- ---- ------- ------------- ----- -------- ---- --- -- ------------ -- - ----------------- ---------- --------------- -- ------------ -- - -------------------- -------- ------- ----- ---展开代码
查询数据
使用 Model.findAll()
方法可以查询表中的所有数据。
User.findAll() .then((users) => { console.log('Users found:', users.map((user) => user.toJSON())); }) .catch((err) => { console.error('Error finding users:', err); });
更新数据
使用 Model.update()
方法可以更新表中的数据。
User.update({ age: 21 }, { where: { name: 'Alice' } }) .then((count) => { console.log(`${count} users updated`); }) .catch((err) => { console.error('Error updating users:', err); });
删除数据
使用 Model.destroy()
方法可以删除表中的数据。
User.destroy({ where: { name: 'Alice' } }) .then((count) => { console.log(`${count} users deleted`); }) .catch((err) => { console.error('Error deleting users:', err); });
总结
在本文中,我们介绍了如何在 Express.js 中使用 Sequelize.js 实现 MySQL 数据库连接。首先,我们创建了一个 Sequelize 实例,然后定义了数据模型,最后演示了一些常用的数据库操作。希望本文能帮助大家更好地理解和使用 Sequelize.js。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65f39dd92b3ccec22fc105db