Sequelize 是一个基于 Node.js 的 ORM(对象关系映射)库,它支持 MySQL、MariaDB、PostgreSQL、SQLite 和 Microsoft SQL Server 数据库。Sequelize 提供了一种将关系型数据库与 Node.js 应用程序连接起来的简洁而又灵活的方式。
安装与配置
使用 npm 安装 Sequelize:
npm install sequelize
使用 Sequelize 实现 ORM 的第一步是在 Node.js 应用程序中进行配置,让 Sequelize 知道如何连接到数据库。在应用程序的根目录下,创建一个 config.js 文件:
-- -------------------- ---- ------- -------------- - - ------------ - --------- ------- --------- ----------- --------- ---------------- ----- ------------ -------- -------- -------- ----- -- ----------- - --------- ------- --------- ----------- --------- ---------------- ----- ------------ -------- -------- -------- ----- - --
其中,development 和 production 分别代表开发环境和生产环境;username、password、database、host 和 dialect 分别表示数据库登录的用户名、密码、数据库名称、服务器地址和数据库类型;logging 表示是否启用数据库查询日志。
然后在 app.js 中初始化 Sequelize:
-- -------------------- ---- ------- ----- --------- - --------------------- ----- ------ - -------------------- ----- --------- - --- -------------------------------------- ---------------------------- ---------------------------- - ----- ------------------------ -------- --------------------------- -------- --------------------------- --- -------------- - ----------
数据模型定义
在 Sequelize 中,每个模型对应一个数据库表,模型中定义了表的结构和操作。下面是一个简单的用户模型示例:
-- -------------------- ---- ------- ----- --------- - --------------------- ----- --------- - ----------------- ----- ---- - ------------------------- - --- - ----- ------------------ ----------- ----- -------------- ---- -- ------ - ----- ----------------- ---------- ------ ------- ----- --------- - -------- ---- - -- --------- - ----- ----------------- ---------- ----- -- ---------- - ----- ---------------- -- --------- - ----- ---------------- - --- ------------ -- -----------------
其中,sequelize.define 方法将一个模型定义为一个表。定义的参数包括表名和字段和其对应数据类型和验证规则。
sync 方法将创建表和其对应的字段和数据类型,如果一个表已经存在,则不会创建新表。除非在 sync 方法中传递了 { force: true } 选项,强制创建新表。
数据模型查找
在查询模型表时,Sequelize 提供了丰富的语法,如下:
-- -------------------- ---- ------- ------------------------- -- - ------------------- --- ------------------------ -- - ------------------ --- ------------------- ------ - ------ ------------- - ---------------- -------- -- - ------------------ --------------------- --- -------------------------- -- - ------------------ --- ----------------------- -- - ------------------- --- ------------------------ -- - ----------------- --- ------------------------ -- - ----------------- --- ------------------------ -- - ----------------- --- -------------- ------ - ------ ------------- - ------------- -- - ------------------- --- -------------- ------ ------------- ------------- -- - ------------------- --- -------------- ------ --- ------- - ------------- -- - ------------------- ---
数据模型更改
在 Sequelize 中,有许多方法可以更改数据模型表。以下是一些基本的更改:
创建一条记录
User.create({ email: 'foo@bar.com', password: 'barbaz' }).then(user => { console.log(user); });
更新一条记录
User.findOne({ where: { email: 'foo@bar.com' } }).then(user => { user.password = 'newpassword'; user.save(); });
删除一条记录
User.findOne({ where: { email: 'foo@bar.com' } }).then(user => { user.destroy(); });
总结
Sequelize 是一个功能强大的 ORM 库,它提供了非常灵活和丰富的查询语法,实现了关系型数据库与 Node.js 应用程序之间的快速连接。引入 Sequelize,可以极大地提高开发效率,减少重复劳动,专注于业务逻辑的实现。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6489408348841e989478d7b8