npm 包 waterline-schema 使用教程

简介

waterline-schema 是面向对象的数据建模工具,它使用 JavaScript 对象表示数据结构,并为访问和操作数据添加了一些简单的方法。它和 ORM 相似,但是它实现了跨数据存储中心结构感知的数据操作,包括 MySQL、MongoDB、PostgreSQL、Redis 等诸多数据存储中心。

本文将介绍如何使用 npm 包 waterline-schema,创建和访问对象、定义关系和设置属性。

安装

安装 waterline-schema,可以使用 npm:

--- ------- ----------------

创建对象

要使用 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" 对象,我们需要先创建一个对象的实例:

----- ---- - -------------
  ----- ------
  ---- --
---

然后我们可以通过调用实例中的属性来访问对象的属性:

----------------------- -- -- -----

定义关系

当我们在使用 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


猜你喜欢

  • npm 包 opted 使用教程

    在前端开发中,我们经常使用各种第三方库或工具来提高开发效率和代码质量。npm 是其中一个非常流行的包管理工具,它能够让我们方便地下载安装各种 npm 包。今天我们来介绍一个非常好用的 npm 包,它的...

    5 年前
  • NPM 包 Varity 使用教程

    Varity 是一个基于 JavaScript 编写的 NPM 包,它可以用来提供元素内容的模糊匹配。在前端开发中,我们经常需要对用户的输入进行校验或者查询,而这种校验或查询的方式通常需要实现模糊匹配...

    5 年前
  • npm 包 n-wrap 使用教程

    什么是 n-wrap? n-wrap 是一个 Node.js 模块,它允许您在 Node.js 应用程序中使用异步函数而无需处理它们的回调函数。使用 n-wrap,您可以把 Node.js 回调风格的...

    5 年前
  • npm 包 n-installed 使用教程

    前言 前端开发中,我们经常需要使用各种各样的 npm 包来帮助我们快速构建项目,提高工作效率。但是,有时候我们会遇到这样一些问题:如何查看当前项目中已经安装了哪些 npm 包?当前项目中的依赖包版本是...

    5 年前
  • npm 包 n-install-missing 使用教程

    在我们进行前端开发的过程中,经常会使用到 npm 进行包管理。但是在有时我们会遇到一些问题,例如某些依赖包缺失或有版本冲突等。这时候,我们就需要使用 npm 包 n-install-missing 来...

    5 年前
  • npm 包 gulp-codeclimate-reporter 使用教程

    介绍 gulp-codeclimate-reporter 是一款用于将 gulp 任务中的代码覆盖率报告上传至 Code Climate 并自动更新质量分的 npm 包。

    5 年前
  • npm 包 n-run 使用教程

    在前端开发中,我们经常需要在命令行执行一些任务,如编译 CSS、JS、压缩文件或启动本地服务器等。npm 包 n-run 是一个非常实用的命令行工具,它可以简化我们的工作流,并提高开发效率。

    5 年前
  • npm 包 grunt-test-matrix 使用教程

    前言 在前端开发的过程中,自动化测试已经是必不可少的一部分。在很多情况下,我们需要同时运行多种不同的测试用例,并且在测试报告中清晰地展示每种用例的执行结果。为了满足这个需求,npm 上已经有了很多相关...

    5 年前
  • npm 包 grunt-simple-istanbul 使用教程

    前言 在 JavaScript 应用程序开发中,代码覆盖率测试是开发者需要关注的一个非常重要的方面。这可以帮助开发者发现代码中的潜在错误和性能问题,以及为他们总结更好的测试用例。

    5 年前
  • npm 包 task-master 使用教程

    在前端开发中,我们常常需要执行各种任务,比如编译、打包、压缩等等。手动执行这些任务可能会非常耗时、繁琐或容易出错。为了解决这个问题,我们可以使用 npm 包 task-master。

    5 年前
  • npm 包 Safe-obj 使用教程

    Safe-obj 是一个 npm 包,主要用于防止 JavaScript 中没有指定属性的对象或者 undefined 对象的属性引用。Safe-obj 可以让你在对象属性中使用完全安全的点号表示法,...

    5 年前
  • npm 包 mockstream 使用教程

    前言 在前端开发中,我们常常会需要接口数据来进行开发和测试。但是在开发初期,后端接口可能并没有完全准备好,这时候就需要我们自己模拟数据。有一种方法就是使用 mock 数据,但是使用手动编写的 mock...

    5 年前
  • npm包knox-mpu-alt的使用教程

    knox-mpu-alt 是基于Node.js的S3的多部分文件上传模块,可以实现大文件的上传,断点续传,以及上传进度的获取等功能。在前端开发中,常常需要上传一些大文件,如图片、视频等,这时knox-...

    5 年前
  • npm 包 parseable 使用教程

    在前端开发过程中,我们经常需要处理从后端接收的数据,数据格式各异,有时还需要进行一些数据的处理和解析。parseable 就是一个非常好用的 npm 包,它能够将晦涩难懂的数据格式快速转换成我们想要的...

    5 年前
  • npm 包 clues 使用教程

    简介 clues 是一个基于 RxJS 模型的观察者库,它可以帮助我们在前端应用中管理复杂的状态和副作用逻辑,提高代码可读性和可维护性。 安装 --- ------- -----使用 在使用前,我们需...

    5 年前
  • npm 包 cache-stampede 使用教程

    在前端开发中,经常会用到从 npm 上安装依赖包并引用这些依赖包的功能。但是,当项目体量增大时,每次安装依赖包都需要等待很长时间。为了解决这个问题,我们可以使用 npm 包 cache-stamped...

    5 年前
  • npm包 acl使用教程

    介绍 Access Control List (ACL) 是一个 Node.js 应用程序中用于控制数据访问权限的 npm 包。ACL 允许您指定并控制具体用户对于您 Node 应用程序中某些资源的访...

    5 年前
  • npm 包 promisify-any 使用教程

    前言 作为前端工程师,在编写异步代码时,我们经常会使用 Promise 来管理异步操作。然而,在使用 Promise 简化异步代码时,我们仍然需要手动将 Node.js 回调函数(callback)P...

    5 年前
  • npm 包 oauth2-server 使用教程

    前言 oauth2-server 是一个用于构建安全的、可以扩展的 OAuth2 服务器的 Node.js 库。它提供了与 Express 和 Koa 相集成的中间件,使得使用者可以快速地搭建一个 O...

    5 年前
  • npm 包 jsdom-little 使用教程

    引言 在前端开发过程中,我们通常需要在脚本中模拟 DOM 环境进行测试和数据处理。jsdom-little 是一个轻量级的 npm 包,使用它可以在 Node.js 环境下模拟浏览器环境,从而进行 D...

    5 年前

相关推荐

    暂无文章