引言
Sequelize 是一个流行的 Node.js ORM,它支持多个数据库,并提供了简单的 CRUD (Create, Read, Update, Delete) 操作。在本文中,我们将学习如何使用 Sequelize 进行 CRUD 操作。
安装 Sequelize
首先,我们需要安装 Sequelize。在 Terminal 中运行以下命令:
npm install --save sequelize
接下来,我们需要安装要使用的数据库的适配器。例如,如果我们要使用 MySQL,则需要安装以下适配器:
npm install --save mysql2
对于 PostgreSQL 和 Sqlite,分别对应:
npm install --save pg pg-hstore npm install --save sqlite3
配置 Sequelize
在项目文件夹中创建 config.js
文件,并添加以下内容:
-- -------------------- ---- ------- -------------- - - ------------ - -------- -------- --------- ------- --------- ---------------- --------- ---------------- ----- ------------ ----- ----- ----------------- -- - --
这里我们配置的是 MySQL 数据库的开发环境。如果是生产环境或其他环境,需要在配置文件中相应地更改。
创建模型
模型定义了数据库中的表结构。在 Sequelize 中,模型是通过 JavaScript 类定义的。在项目文件夹中创建 models/user.js
文件,并添加以下内容:
-- -------------------- ---- ------- ----- --------- - --------------------- ----- --------- - ----------------------------- ----- ---- - ------------------------ - --- - ----- ------------------ ----------- ----- -------------- ----- -- ----- ----------------- ------ - ----- ----------------- ------- ----- -- --------- ----------------- --- -------------- - -----
这里我们定义了一个名为 user
的模型,并定义了 id
、name
、email
和 password
四个属性。其中,id
是主键,并自增;email
是唯一的;其余属性都是字符串类型。
Sync 模型
在应用程序启动时,Sequelize 会自动创建数据库表和关联约束。但我们需要在同步模型之前创建数据库。操作如下:
-- -------------------- ---- ------- ----- ------ - --------------------- ----- --------- - --------------------- ----- --------- - --- ---------- ---------------------------- ---------------------------- ---------------------------- ------------------- -- -------------- - ---------------- ------ ---- ---
这里我们定义了一个 sequelize
实例,并使用 sync
方法同步了模型和数据库。在开发过程中,我们经常需要清空数据库并重新创建表。因此,在同步模型时,可以在 sync
方法上指定 force: true
,以删除并重新创建数据库表。
插入数据
下面是如何使用 Sequelize 插入数据的示例代码:
-- -------------------- ---- ------- ----- ---- - -------------------------- ------------- ----- ----- ------ ----------------------- --------- --------- -- ------------ -- --------------------------- ------------ -- --------------------------
可以看到,我们只需要调用 create
方法,并传入一个对象,该对象具有与 User
模型定义的属性相同的属性即可。
查询数据
下面是如何使用 Sequelize 查询数据的示例代码:
const User = require('../models/user'); User.findByPk(1) .then((user) => console.log(user.toJSON())) .catch((err) => console.log(err.message));
这里我们使用了 findByPk
方法。它接受一个值作为参数,并返回符合该值的记录。在这个例子中,我们使用 1 作为 id,以查找具有 id 为 1 的用户。
要查找多个记录,可以使用 findAll
方法:
User.findAll({ where: { name: '张三' } }) .then((users) => console.log(users.map((u) => u.toJSON()))) .catch((err) => console.log(err.message));
这里我们使用 where
属性指定了查询条件。这里我们使用了 name
属性,并指定为 '张三'
,以查找具有该名称的所有用户。
在处理多个结果时,我们需要使用 map
方法来获取其中每个元素的 JSON 数据。
还有许多其他的查询方法和选项,可以满足不同的需求。
更新数据
下面是如何使用 Sequelize 更新数据的示例代码:
const User = require('../models/user'); User.update({ name: '李四' }, { where: { id: 1 } }) .then(() => console.log('更新成功')) .catch((err) => console.log(err.message));
这里我们使用了 update
方法。该方法接受两个对象:第一个对象是要更新的值,第二个对象是要更新的记录的查询条件。在这个例子中,我们更新了具有 id 为 1 的用户的名称为 '李四'
。
删除数据
下面是如何使用 Sequelize 删除数据的示例代码:
const User = require('../models/user'); User.destroy({ where: { id: 1 } }) .then(() => console.log('删除成功')) .catch((err) => console.log(err.message));
这里我们使用了 destroy
方法。该方法接受一个对象,该对象指定要删除的记录的查询条件。在这个例子中,我们删除了具有 id 为 1 的用户。
结论
在本文中,我们学习了如何使用 Sequelize 进行 CRUD 操作。这些操作包括插入、查询、更新和删除数据。我们还学习了如何创建模型,并在同步模型时创建数据库表。
Sequelize 具有许多其他功能,如关联模型、事务和模型验证等。这些功能可以帮助我们管理和操作数据库,以满足我们的需求。希望这篇文章可以为你学习 Sequelize 奠定基础。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66fd27004471362601798830