什么是 Contour-ORM?
Contour-ORM 是一个基于 JavaScript 的 ORM(对象关系映射) 库,它可以让开发者简单地与数据库进行交互。它建立在顶级 ORM 库 Sequelize
之上,以提供更加强大且易于使用的界面。
安装 Contour-ORM
使用 npm 安装 Contour-ORM:
npm install contour-orm
连接数据库
首先,我们需要设置一个 sequelize
实例来连接数据库。sequelize
基于 Sequelize 库生成并返回一个实例对象。
-- -------------------- ---- ------- ----- ---------- - ----------------------- ----- --------- - --------------------- ----- -------- - - --------- ------------- --------- ------- --------- -------------- ----- ------------ -------- ------- -- ----- --------- - --- ---------------------------- ------------------ ------------------ - ----- -------------- -------- ----------------- --- ----- --- - --- ------------------------
以上代码演示了如何设置 sequelize
,并将其传递给 ContourORM
。
定义模型
在 ORM 中,模型定义了表的结构。 Contour-ORM 为我们提供了方便的接口,以定义表格。
-- -------------------- ---- ------- ----- ---- - ------------------ - --- - ----- ------------------- ----------- ----- -------------- ----- -- ---------- ---------------------- --------- ---------------------- --------- - ----- ---------------------- ------- ----- ---------- ------ -- --------- - ----- ---------------------- ---------- ------ -- ---
从以上代码段,我们可以看出模型定义包含模型名称和模型属性。模型属性描述了表中的每一列或字段。
当定义模型属性时,还可以指定属性类型,属性长度以及是否为主键。在此示例中,我们定义了 User
模型,其中 id
作为主键,在添加用户时自动增加。
请注意,我们可以只显示属性类型而不是 type
属性,并且如果未定义任何其他属性,则默认设置属性名称为字符串类型。
模型之间的关系
在建立关系时, ORM 确定了表之间的关系,并在关联表上更改行。 Contour-ORM 通过在关联的 ORM 模型中添加外键来建立模型之间的关系。
-- -------------------- ---- ------- ----- ---- - ------------------ - --- - ----- ------------------- ----------- ----- -------------- ----- -- ------ - ----- ---------------------- ---------- ------ -- -------- - ----- ---------------- ---------- ------ -- --- -------------------- - --- --------- --- ------------------ - ----------- --------- ---
以上代码演示了如何创建两个模型之间的一对多关系。在此示例中,我们使用 belongsTo
和 hasMany
定义了 User
和 Post
之间的关系。
Post.belongsTo(User, { as: 'Author',});
表示Post
模型实例可以属于User
模型实例,并且在Post
模型实例表中,将创建一个名为AuthorId
的列,其值是对应的User
模型实例的id
。User.hasMany(Post, {foreignKey: 'UserId',});
表示User
模型实例可以有多个Post
模型实例,并且在Post
模型实例表中,将创建一个名为UserId
的列,其值是对应的User
模型实例的id
。
创建和查询表格
现在我们已经定义了模型和关系,我们可以使用 sequelize.sync()
自动创建表格,并使用 .create()
查询和添加行。
-- -------------------- ---- ------- ------------------------ -- - ------------- ---------- ------- --------- ------ --------- ---------- --------- -------------- ------------ -- - ------------- ------ ------ ------- -------- ----- -- -- ----- ------- --------- -------- ---------- -- - -------------- -------- ------- ------------- -- - ------------------- --- --- --- ---
在以上代码段中,我们使用 User.create()
创建了一个新用户,并使用 Post.create()
创建了一篇新博客文章。我们可以在 create
的回调函数中找到刚刚创建的行,以供我们添加其他行。在此示例中,我们为新创建的帖子添加了一个 AuthorId
列引用相应的用户 ID。
最后,我们使用 Post.findAll({ include: [User], })
查询目前所有的博客文章,并使用 User
模型打印出所有帖子混合用户信息的结果。
总结
以上是使用 Contour-ORM 的简单示例。 ORM 可以帮助减少与数据所有相关的混乱代码,使代码更易于理解和测试。 ORM 可以轻松处理关联数据表格之间的关系,而不需要程序员执行手动软件开发。
Contour-ORM 为我们提供了一种更加易于使用的接口,以使用 Sequelize 库 和 Node.js,以允许我们查看数据库中的数千行数据,并以最小的交互效果对其进行操作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/85583