介绍
Sequelize 是一个 Node.js ORM(对象关系映射)框架,支持多种数据库,如 MySQL、PostgreSQL、SQLite 和 Microsoft SQL Server。它提供了一种简单的方式用 JavaScript 代码操作数据库,而不必手动编写 SQL 语句。
在本文中,我们将学习如何使用 Sequelize 实现 Node.js CRUD(增删改查)操作。
安装
首先,我们需要安装 Sequelize。在终端中输入以下命令:
npm install sequelize
此外,我们还需要安装驱动程序,用于与数据库通信。例如,如果您要使用 MySQL,可以安装以下驱动程序:
npm install mysql2
连接到数据库
在使用 Sequelize 之前,我们需要先连接到数据库。以下是连接到 MySQL 数据库的示例代码:
const Sequelize = require('sequelize'); const sequelize = new Sequelize('database_name', 'username', 'password', { host: 'localhost', dialect: 'mysql', });
database_name
:数据库名称username
:用户名password
:密码host
:数据库主机地址dialect
:数据库类型,此处为 MySQL
定义模型
在 Sequelize 中,模型对应于数据库中的表。我们可以使用模型来执行 CRUD 操作。以下是创建一个名为 User
的模型的示例代码:
-- -------------------- ---- ------- ----- --------- - --------------------- ----- --------- - --- -------------------------- ----------- ----------- - ----- ------------ -------- -------- --- ----- ---- - ------------------------ - ---------- - ----- ----------------- -- --------- - ----- ----------------- -- ------ - ----- ----------------- ------- ----- -- --------- - ----- ----------------- -- ---
在上面的示例代码中,我们定义了一个名为 User
的模型,该模型包含四个字段:firstName
、lastName
、email
和 password
。我们使用 sequelize.define()
方法创建了一个模型,并定义了每个字段的类型。unique: true
表示 email
字段是唯一的,即不能有重复的值。
增
要在数据库中创建新的记录,我们可以使用 create()
方法。以下是创建一个新用户的示例代码:
User.create({ firstName: 'John', lastName: 'Doe', email: 'john@example.com', password: 'password', }).then((user) => { console.log(user.toJSON()); });
在上面的示例代码中,我们创建了一个新用户,并将其存储在数据库中。create()
方法返回一个 Promise,我们使用 .then()
方法处理 Promise,打印新用户的 JSON 数据。
删
要从数据库中删除记录,我们可以使用 destroy()
方法。以下是删除用户的示例代码:
User.destroy({ where: { id: 1, }, }).then((result) => { console.log(result); });
在上面的示例代码中,我们删除了 ID 为 1 的用户。destroy()
方法返回一个 Promise,我们使用 .then()
方法处理 Promise,打印删除操作影响的行数。
改
要更新数据库中的记录,我们可以使用 update()
方法。以下是更新用户的示例代码:
-- -------------------- ---- ------- ------------ - ---------- ------- -- - ------ - --- -- -- - --------------- -- - -------------------- ---
在上面的示例代码中,我们将 ID 为 1 的用户的名字从 John 改为 Jane。update()
方法返回一个 Promise,我们使用 .then()
方法处理 Promise,打印更新操作影响的行数。
查
要从数据库中检索记录,我们可以使用 findAll()
方法,该方法将返回符合查询条件的所有记录。以下是检索所有用户的示例代码:
User.findAll().then((users) => { console.log(users.map((user) => user.toJSON())); });
在上面的示例代码中,我们检索了所有用户的记录,并使用 .map()
方法将每个用户转换为 JSON 格式。findAll()
方法返回一个 Promise,我们使用 .then()
方法处理 Promise。
我们还可以使用 findOne()
方法检索单个记录。以下是通过电子邮件查找用户的示例代码:
User.findOne({ where: { email: 'john@example.com', }, }).then((user) => { console.log(user.toJSON()); });
在上面的示例代码中,我们使用电子邮件地址检索了一个用户的记录,并将其转换为 JSON 格式。findOne()
方法返回一个 Promise,我们使用 .then()
方法处理 Promise。
结论
在本文中,我们学习了如何使用 Sequelize 实现 Node.js CRUD 操作。我们首先连接到数据库,然后定义了模型来对应数据库中的表。接下来,我们学习了如何使用 create()
、destroy()
、update()
和 findAll()
方法来执行 CRUD 操作。
Sequelize 提供了一种简单的方式用 JavaScript 代码操纵数据库。熟练掌握它可以让我们开发更高效并且更易于维护的 Node.js 应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66fca6df4471362601712bae