什么是ORM?
ORM(Object-Relational Mapping)是一种编程技术,将数据库中的关系数据表映射为对象,使得程序员可以用面向对象的方式操作数据库。
ORM 的好处是可以使开发人员更专注于业务逻辑,而不是直接操作数据库。在大型的应用程序中,复杂的数据库操作可能会变得非常冗长和容易出错,而使用 ORM 可以使得这一过程变得更加自动化和规范化。
Node.js 的 ORM
Node.js 社区中有许多 ORM 框架可供选择,包括 Sequelize、TypeORM 和 Objection.js 等。这些框架的功能有所不同,但它们的基本思路是相同的:将数据库中的数据映射为 JavaScript 对象,然后在 JavaScript 中以面向对象的方式操作这些数据。
在这篇文章中,我们将重点介绍在 Node.js 中使用 MySQL 实现 ORM 框架。
使用 Sequelize
Sequelize 是一个流行的 Node.js ORM 框架,可以与 MySQL,PostgreSQL 和 SQLite 等多种数据库进行交互。
首先,我们需要安装 Sequelize 和 MySQL:
npm install --save sequelize mysql2
接下来,我们需要为 Sequelize 创建一个新的实例:
const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql' });
这里的 database
,username
,和 password
是连接 MySQL 数据库时的凭证,这里要注意,Sequelize 中的模型名默认使用单数形式,所以建议将数据库表的表名使用单数形式存储。
例如我们有一个 users
表,可以创建一个 Sequelize 模型如下:
-- -------------------- ---- ------- ----- - ---------- ----- - - --------------------- ----- ---- ------- ----- -- ----------- --------- ----------------- --------- ----------------- -- - ---------- ---------- ------ ---
在这里,我们定义了一个 User
模型,它有两个属性 username
和 password
。我们还将模型存储在了 Sequelize 的 sequelize
实例中。模型名指定为 'user'
。
接下来,我们可以使用模型向数据库中创建一个新的记录:
sequelize.sync({ force: true }).then(() => { return User.create({ username: 'john-doe', password: 'password' }); }).then(john => { console.log(john.toJSON()); });
在这里,我们调用了 Sequelize 的 sync()
方法,用于将模型同步到数据库中。然后我们使用 User.create()
方法创建了一个新的用户记录,并打印出了该记录的 JSON 版本。
我们也可以使用其他的 Sequelize 方法,例如 findAll()
,来查询数据库:
User.findAll().then(users => { console.log(users); });
在这里,我们使用 User.findAll()
方法来查询所有用户,并打印出用户对象数组。
总结
Sequelize 是一个灵活且易于使用的 Node.js ORM 框架,适用于许多不同的应用程序。通过使用 Sequelize,我们可以使得数据库操作更加简单和规范,同时释放出开发人员更多的时间来关注业务逻辑。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6499419e48841e989463c158