简介
Sequelize 是一个基于 Node.js 的 ORM(Object-Relational Mapping)框架,它可以帮助我们更方便地访问数据库中的数据。与其他 ORM 框架一样,Sequelize 支持多种数据库,包括 SQLite、MySQL、MariaDB、PostgreSQL 和 Microsoft SQL Server。在前后端分离开发的背景下,Sequelize 成为了前端工程师不可或缺的技能之一。
授权
Sequelize 已经可用于绝大多数的生产环境,包括了各种业务逻辑。然而,尽管 Sequelize 是一个开源项目,但它并不意味着可以被随意使用。开源协议并不是没有限制的,按照 GPL 许可,如果您使用了 Sequelize,并且在您的项目中包含了对 Sequelize 的修改,那么您需要将您的项目同样开源。如果您无法或者不愿意将您的代码开源,那么您需要购买商业授权以便合法使用 Sequelize。
另外,请注意自己的业务需要,只在真正需要的情况下才使用 Sequelize 商业授权。
安装
首先,您需要在您的项目中安装 Sequelize:
npm install --save sequelize
然后,根据您选择的数据库类型,您需要安装相应的驱动程序。例如,如果您使用 MySQL:
npm install --save mysql2
如果您使用 PostgreSQL:
npm install --save pg pg-hstore
使用
在使用 Sequelize 之前,您需要先配置数据库连接。您需要在一个单独的文件中导出一个 Sequelize 实例,以便在其他文件中使用。
const { Sequelize } = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql' }); module.exports = sequelize;
在上面的代码中,我们使用 MySQL 作为例子,您需要将 database
、username
和 password
替换为实际的数据库信息。
接下来,我们将说明一些常见的 Sequelize 操作示例。
定义模型和关系
在 Sequelize 中,我们使用模型(Model)来表示数据库中的表。我们可以使用 Sequelize 定义模型及其属性和关系。
-- -------------------- ---- ------- ----- - --------- - - --------------------- ----- --------- - ----------------------- ----- ---- - ------------------------ - ----- - ----- ----------------- ---------- ----- -- ---- ----------------- --- ----- ---- - ------------------------ - ------ - ----- ----------------- ---------- ----- -- -------- - ----- --------------- ---------- ----- - --- ------------------- --------------------- -------------- - - ----- ---- --展开代码
在上面的代码中,我们创建了 User
和 Post
两个模型,分别表示用户和文章。每个模型都有其属性和关系。例如,User
模型有一个名为 age
的数字属性和一个与 Post
模型一对多关联的关系。
查询数据
我们可以使用 Sequelize 的查询构造器来从数据库中检索数据。以下是一些常见的查询示例。
查询单个实例
const user = await User.findOne({ where: { name: 'John' } }); console.log(user.toJSON());
查询实例集合
const users = await User.findAll({ where: { age: { [Op.gt]: 18 } } }); console.log(users.map(user => user.toJSON()));
使用分页查询
const usersPage1 = await User.findAll({ offset: 0, limit: 10 }); const usersPage2 = await User.findAll({ offset: 10, limit: 10 });
创建和更新数据
当我们需要在数据库中创建或更新数据时,可以使用以下代码:
创建数据
const user = await User.create({ name: 'Alice', age: 25 }); console.log(user.toJSON());
更新数据
const user = await User.findOne({ where: { name: 'Alice' } }); user.age = 26; await user.save(); console.log(user.toJSON());
删除数据
当我们需要从数据库中删除数据时,可以使用以下代码:
const user = await User.findOne({ where: { name: 'Alice' } }); await user.destroy(); console.log('User deleted!');
结论
本文介绍了 Sequelize 的授权方式和使用方法。希望本文对您能够有所帮助,掌握 Sequelize 的应用技巧。同时,也希望您在使用 Sequelize 时能够关注到开源协议的限制,了解商业授权的规则,保护您自己的权益。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67383252317fbffedf0ece2e