Sequelize 是一个基于 Node.js 的 ORM(Object-Relational Mapping)框架,它可以让我们使用 JavaScript 语言操作数据库,而不必直接使用 SQL 语句。在前端开发中,Sequelize 常常用于编写后端接口,可以方便地创建和操作数据库表。
本文将为您介绍如何使用 Sequelize 建立模型,并通过示例代码让您更容易理解。
准备工作
在开始之前,您需要安装 Node.js 和 Sequelize,可以使用命令行进行安装。
npm install sequelize -g npm install sequelize-cli -g
在安装 Sequelize 后,我们需要运行以下命令创建一个新的 Sequelize 项目。
sequelize init
初始化项目后,您需要创建一个数据库。
建立模型
在 Sequelize 中,模型是数据库中各个表的 JavaScript 对象映射,它包含了表的结构信息和操作数据库表的方法。
下面我们将以一个简单的用户表作为示例,演示如何建立并使用 Sequelize 模型。
定义模型
在定义模型之前,您需要先设置 Sequelize 的连接。
const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql' // 选择您使用的数据库类型 });
接着,在 models 目录下创建 user.js 文件,并写下以下代码定义一个用户模型。
-- -------------------- ---- ------- -------------- - ----------- ---------- -- - ----- ---- - ------------------------ - --- - ----- ------------------ ----------- ----- -------------- ---- -- --------- - ----- --------------------- ---------- ----- -- --------- - ----- --------------------- ---------- ----- -- ------ - ----- ---------------------- ---------- ---- - --- ------ ----- --
在上述代码中,我们通过 sequelize.define() 方法定义了一个 User 模型,它具有四个字段:id、username、password 和 email,每个字段都有其相应的数据类型和约束。例如,id 字段是整数类型,是表的主键,自动递增。username 和 password 字段是字符串类型,不能为空。而 email 字段是字符串类型,允许为空。
数据库迁移
在定义模型后,我们需要使用 Sequelize CLI 提供的迁移命令生成数据库表并应用模型的变化。下面我们将创建一个新的迁移文件。
sequelize migration:create --name create-users-table
创建完毕后,打开新生成的迁移文件,编写以下代码:
-- -------------------- ---- ------- ---- -------- -------------- - - --- ----- ---------------- ---------- -- - ----- ----------------------------------- - --- - ----- ------------------ -------------- ----- ----------- ---- -- --------- - ----- ----------------- ---------- ----- -- --------- - ----- ----------------- ---------- ----- -- ------ - ----- ---------------- -- ---------- - ----- --------------- ------------- -------------------------------------- -- ---------- - ----- --------------- ------------- -------------------------------------- - --- -- ----- ----- ---------------- ---------- -- - ----- ---------------------------------- - --
在上述代码中,我们定义了一个 up() 方法和一个 down() 方法。up() 方法用于创建数据库表,down() 方法用于回滚操作。在 createTable() 方法中定义了 users 表的字段。需要注意的是,Sequelize 会自动给每一个表添加 createdAt 和 updatedAt 两个字段。
接下来,我们需要将迁移应用到数据库中。
sequelize db:migrate
运行完此命令后,Sequelize 将会根据迁移文件,创建相应的 users 表。
使用模型
现在我们已经成功地建立了一个 User 模型。下面,我们将使用该模型来完成一些数据库操作。
创建用户
-- -------------------- ---- ------- ----- ---- - -------------------------- ----- ------- - - --------- ------- --------- ------ ------ --------------- -- -------------------- ---------- -- ------------------ ------------ -- ----------------------
上述代码中,我们通过 User.create() 方法创建了一个新用户。该方法将在数据库中创建一条记录,并返回一个 Promise 对象,我们可以使用 .then() 和 .catch() 分别处理成功和失败的情况。
查询用户
-- -------------------- ---- ------- ----- ---- - -------------------------- -------------- ------ - --- - - -- ---------- -- ------------------ ------------ -- ----------------------
上述代码中,我们通过 User.findOne() 方法查询了用户,该方法是 Promise 对象,将返回一个满足条件的用户对象,或者 null。
更新用户
-- -------------------- ---- ------- ----- ---- - -------------------------- ----- ---------- - - ------ ------------------ -- ----------------------- - ------ - --- - - -- -------- -- ----------------------- ------------ -- ----------------------
上述代码中,我们使用 User.update() 方法更新了用户的信息。该方法将返回受影响的行数,而不是更新的结果本身。
删除用户
-- -------------------- ---- ------- ----- ---- - -------------------------- -------------- ------ - --- - - -- -------- -- ----------------------- ------------ -- ----------------------
上述代码中,我们使用 User.destroy() 方法删除了对应的用户。该方法将返回受影响的行数,而不是删除的结果本身。
总结
在本文中,我们介绍了如何使用 Sequelize 和 JavaScript 操作数据库。同时,我们也熟悉了一些基本的数据库操作。希望这篇文章能够帮助您更快地学习和使用 Sequelize。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6490dab248841e9894ee63ec