npm 包 @atlas.js/sequelize 使用教程

在前端开发中,使用数据库是一个不可忽视的部分,在 Node.js 中使用 Sequelize 是非常常见的方式,但是 Sequelize 自带的特性并不完善,@atlas.js/sequelize 包就是针对 Sequelize 的一个扩展。

安装

你可以通过 npm 来安装 @atlas.js/sequelize 包,运行以下命令即可:

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

基本使用

使用 @atlas.js/sequelize 和 Sequelize 类似,只需要将 Sequelize 替换成 AtlasSequelize 即可。以下是一个简单的示例:

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

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

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

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

更强的模型 API

@atlas.js/sequelize 在模型方面提供了更强大的可扩展 API,你可以使用定义模型的“插件”来扩展你的模型。

基本例子

下面是一个简单的插件,它为“User”模型添加了一个从“findLatest”方法中获得最新用户数据的实例方法。

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

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

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

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

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

在这个例子中,我们做的是:

  • 添加了自定义方法 findLatest
  • 添加了一个添加钩子,当创建用户时会输出一条消息
  • 添加了一个实例方法,生成 API token(注意:JWT 示意使用)

现在,我们可以在 User 模型实例上执行以下操作:

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

也可以使用如下方式创建用户:

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

插件的高级例子

插件无处不在,在 @atlas.js/sequelize 中使用插件可以轻松地为模型添加更多功能。下面是一个自定义 finder 的示例,以及一个自定义模型缓存的示例。

自定义 finder:

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

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

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

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

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

在这里,我们添加了一个自定义查找器(findWithCustomQuery),它将使用 SQL 查询而不是 Sequelize 代码执行查询,该方法返回的结果与使用内置函数查找器相同(findById)。我们还为 User 模型添加了一个“范围”,使在查询活跃用户的情况下更加简单。

自定义模型缓存:

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

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

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

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

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

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

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

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

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

在这种情况下,我们添加了一个简单的缓存。我们在 User 的构造函数中定义了一个用于缓存的简单 Map,如果查询需要的对象不存在于该缓存中,我们会执行数据库查找并将其保存在内存缓存中,以备将来使用。我们通过添加 afterCreate 钩子来保持缓存的最新状态。

结论

@atlas.js/sequelize 扩展了 Sequelize 的功能,更容易地扩展模型 API 并添加缓存等功能。尽管还没有成为必须使用的 npm 包,但是许多项目中使用它,这使得我们建议您尝试一下。

如果您对 Sequelize 或 @atlas.js/sequelize 有任何问题,可以去官方文档进行查看。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/110044


猜你喜欢

  • npm 包 @angular/router 使用教程

    Angular 是一个前端框架,用于开发单页面和动态 Web 应用。其中,@angular/router 是一个官方提供的 Angular 路由模块,用于在应用程序中管理导航。

    5 年前
  • npm 包 @angular/platform-browser-dynamic 使用教程

    在前端开发中,导入 npm 包是一个常见的操作。但对于初学者来说,使用起来还是有些困难。在本文中,我们将着重介绍 @angular/platform-browser-dynamic 这个 npm 包的...

    5 年前
  • NPM包@angular/platform-browser使用教程

    Angular是一款流行的JavaScript框架,提供了一套完整的前端开发解决方案。@angular/platform-browser是Angular官方提供的NPM包之一,提供了平台无关的浏览器基...

    5 年前
  • npm 包 @angular/http 使用教程

    在前端开发过程中,经常需要进行数据交互与服务请求。而 @angular/http 是 Angular 框架中用于实现 HTTP 客户端功能的核心库,提供了 HttpModule 模块和 Http 服务...

    5 年前
  • npm 包 @angular/forms 使用教程

    前言 随着前端技术的不断发展,Angular已经成为了前端框架中被广泛使用的一种,而@angular/forms也是Angular中重要而且不可或缺的一部分。本文将会深入讲解@angular/form...

    5 年前
  • npm 包 @angular/core 使用教程

    介绍 @angular/core 是 Angular 的核心模块,提供了 Angular 应用程序所需的基本功能。在本篇文章中,我们将详细讲解如何使用 @angular/core 这个 npm 包。

    5 年前
  • npm 包 @angular/compiler 使用教程

    1. 什么是 @angular/compiler? @angular/compiler 是一个 Angular 模板编译器的 npm 包,它的主要作用是将 Angular 应用程序的模板编译成渲染函数...

    5 年前
  • npm 包 @angular/common 使用教程

    前言 Angular 是一个非常流行的前端框架,其前端开发者使用了各种技术。在这些技术中,npm 是我们所熟知的一个包管理器。随着 Angular 的社区不断壮大,相应的 Angular npm 包也...

    5 年前
  • npm包@angular/cdk使用教程

    概述 Angular CDK(组件开发工具包)是一个用于构建通用用户界面组件的库。该工具包提供了一组可重用的组件,这些组件可以用于创建许多常见的用户界面模式。@angular/cdk包是Angular...

    5 年前
  • npm 包 @angular/animations 使用教程

    在 Angular 开发中,@angular/animations 是一个非常重要的包。它是一个用于创建动态动画的 JavaScript 库,并且可以被用于在 Angular 应用程序中添加各种动画效...

    5 年前
  • npm 包 @types/ioredis 使用教程

    在前端开发中,常常需要使用 Redis 数据库作为缓存或消息队列。而 ioredis 就是一个比较流行的 Redis 客户端。@types/ioredis 是一个 TypeScript 类型定义库,它...

    5 年前
  • npm 包 @acceleratxr/service_utilties 使用教程

    简介 @acceleratxr/service_utilities 是一个为前端开发提供基础服务的 npm 包。该包包含了常用的工具、组件、样式等资源,方便开发者快速开发、部署项目。

    5 年前
  • npm 包 node 使用教程

    随着互联网的快速发展,前端技术日益成熟,越来越多的开发者开始使用 npm 包来加速开发过程,提高应用程序的可维护性。本文将为大家详细介绍 npm 包的使用方法。 npm 的基本概述 npm(node...

    5 年前
  • npm包@types/color使用教程

    前言 在前端开发中,涉及到颜色处理的时候,我们一般会用到工具库color,它能够帮助我们实现颜色的解析、转换、计算等操作。不过,对于使用Typescript的开发者来说,在使用color的时候可能会遇...

    5 年前
  • npm 包 bind-decorator 使用教程

    简介 bind-decorator 是一个 npm 包,它为 JavaScript 中的类方法提供了绑定作用域的装饰器,它使用非常方便,可以大大简化代码。此外,由于本包是专为Node和其他JavaSc...

    5 年前
  • npm 包 @tlaukkan/tsm 使用教程

    如果你是一名前端开发者,那么你一定知道 npm 这个神奇的工具,npm 是 node.js 的包管理器,用于安装、管理和分享代码包或模块。而在大多数项目中,我们都会用到一些常用的库或框架,比如 Rea...

    5 年前
  • npm 包 @types/umzug 使用教程

    在前端开发中,我们常常使用 npm 来管理第三方库和工具。其中一个常用的工具是 umzug,它是一个强大的数据库迁移工具。在使用 umzug 的过程中,为了方便和安全,我们需要使用类型声明文件。

    5 年前
  • npm 包 @types/pg 使用教程

    在前端开发中,我们经常需要和数据库进行交互。而对于 Node.js 开发者来说,PostgreSQL 是一个非常流行的数据库选择。为了方便开发者在 TypeScript 中使用 PostgreSQL,...

    5 年前
  • npm 包 @types/bluebird-retry 使用教程

    在使用 JavaScript 编写前端应用时,经常需要处理异步操作,比如请求数据、动画效果等。处理异步操作时,我们经常需要使用 Promise,而 Bluebird 是一个非常优秀的 Promise ...

    5 年前
  • npm 包 @aaa-backend-stack/logger 使用教程

    简介 随着前端技术不断发展,越来越多的开发者开始使用 Node.js 来构建前端项目,而 npm 成为了 Node.js 最受欢迎的包管理工具之一。在前端项目中,日志记录是一个至关重要的任务,因为它可...

    5 年前

相关推荐

    暂无文章