简介
waterline-schema 是面向对象的数据建模工具,它使用 JavaScript 对象表示数据结构,并为访问和操作数据添加了一些简单的方法。它和 ORM 相似,但是它实现了跨数据存储中心结构感知的数据操作,包括 MySQL、MongoDB、PostgreSQL、Redis 等诸多数据存储中心。
本文将介绍如何使用 npm 包 waterline-schema,创建和访问对象、定义关系和设置属性。
安装
安装 waterline-schema,可以使用 npm:
npm install waterline-schema
创建对象
要使用 waterline-schema 创建对象,要首先创建一个 model,一个 model 是 waterline-schema 的最基本的核心构件。model 是数据的一部分,它被设计成非常灵活、可配置和可扩展。
下面我们将创建一个名为 "User" 的 model,包含属性 "name" 和 "age":
-- -------------------- ---- ------- ----- --------- - --------------------- ----- ---- - ----------------------------- --------- ------- ----------- --------------- ------- ----- ----------- - ----- --------- ---- --------- - ---
这段代码使用 extend() 方法创建了一个名为 "User" 的 model。它有一个 identity 名称,这里是 "user"。这是一个关键属性,表示该 model 在系统中的惟一标识符。
它还有一个 connection 属性,它指向我们定义的数据存储中心,这里是 "myLocalMysql"。这个数据存储中心必须与我们的 model 一起使用。
然后我们设置了 properties 属性包含了后面的属性数组,表示我们的 model 包含一个叫做 name 的字符串属性,和一个叫做 age 的数字属性。
访问对象
为了访问 "User" 对象,我们需要先创建一个对象的实例:
const user = User.create({ name: 'Ava', age: 21 });
然后我们可以通过调用实例中的属性来访问对象的属性:
console.log(user.name); // 输出 "Ava"
定义关系
当我们在使用 ORM 时,模型之间的关系也是非常重要的,waterline-schema 同样支持关系的定义。下面我们将在 "User" 和 "Group" 之间创建一个多对多的关系:
-- -------------------- ---- ------- ----- ----- - ----------------------------- --------- -------- ----------- --------------- ------- ----- ----------- - ----- - ----- -------- -- ------ - ----------- ------- ---- --------- --------- ---- - - --- ---- - ----------------------------- --------- ------- ----------- --------------- ------- ----- ----------- - ----- - ----- -------- -- ---- - ----- --------- -- ------- - ----------- -------- ---- ------- - - ---
在 "Group" 中,我们添加了一个 users 属性,类型为 "collection"。这个属性告诉 waterline-schema,每一个 "Group" 包含多个 "User" 对象,并且可以通过 "via" 属性和 "User" 中的 "groups" 来访问。
在 "User" 中,我们添加了一个 groups 属性,类型为 "collection"。这个属性告诉 waterline-schema,每一个 "User" 包含多个 "Group" 对象,并且可以通过 "via" 属性和 "Group" 中的 "users" 来访问。
设置属性
我们可以通过在 "User" 中定义属性 "isAdult" 来实现一个计算属性,用于判断是否成年:
-- -------------------- ---- ------- ---- - ----------------------------- --------- ------- ----------- --------------- ------- ----- ----------- - ----- - ----- --------- --------- ---- -- ---- - ----- ---------- --------- ----- ---- - -- -------- ---------- - ------ -------- -- --- - - ---
我们使用一个函数来定义 "isAdult" 属性,这个函数检查 "age" 属性的值是否大于等于 18。使用这种方式来定义属性,可以轻松地为对象添加计算属性。
总结
在本文中,我们介绍了如何使用 npm 包 waterline-schema 创建、访问对象,定义对象之间的关系以及如何设置属性,你可以使用本教程快速上手学习 waterline-schema,掌握构建更复杂、更强大的系统的必备知识。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67368