npm 包 hapi-arc 使用教程

简介

hapi-arc 是一款基于 hapi.js 的轻量级框架,可快速构建 RESTful API 接口。它使用 Arc 架构模式,将业务逻辑与控制器分离,可以大大提高代码的可维护性和可扩展性。此外,它还内置了常用的插件和中间件,如 Swagger 和 CORS,可以方便地进行 API 文档生成和跨域资源共享等操作。

安装

使用 npm 可以方便地安装 hapi-arc:

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

快速上手

在你的项目中引入 hapi-arc 而不是 hapi.js:

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

接着,添加路由和控制器:

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

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

在控制器中,你可以访问请求参数、头信息和 payload 数据等:

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

你还可以使用插件和中间件来扩展 hapi-arc 的功能:

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

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

        -
    -
---

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

高级功能

hapi-arc 内置了许多高级功能,包括:

Arc 架构模式

Arc 架构模式将业务逻辑和控制器分离,可以使代码更加易读、易于维护和测试。控制器只负责解析和验证请求,不包含任何业务逻辑。而业务逻辑则被独立抽离到 service 层和 model 层中,以实现代码的高内聚、低耦合。

Swagger

hapi-arc 使用 hapi-swagger 插件集成了 Swagger UI,可以方便地生成 API 文档。只需在控制器中添加相关的注释即可:

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

CORS

hapi-arc 使用 hapi-cors 插件实现了 CORS 支持,可以方便地进行跨域资源共享操作。只需在启动服务器时添加相关配置即可:

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

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

JWT 身份验证

hapi-arc 使用 hapi-auth-jwt2 插件实现了 JWT 身份验证,可以方便地对 API 请求进行权限验证。只需在路由中添加 authentication 属性即可:

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

数据库集成

hapi-arc 并没有对数据库进行集成,但是它可以方便地与各种类型的数据库进行集成。只需编写相应的 model 层代码即可:

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

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

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

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

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

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

然后在控制器中使用它:

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

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

总结

hapi-arc 是一款强大、易用的 RESTful API 框架,它使用 Arc 架构模式、内置常用的插件和中间件,可以快速构建高可维护、高可扩展的 API 接口。在实现 API 接口时,我们应该尽可能地使用 hapi-arc 并配合其它实用的工具和技术,以提高我们的工作效率和质量。

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


猜你喜欢

  • npm 包 react-notifys 使用教程

    在现代 Web 开发中,前端框架和库已经成为开发中必不可少的工具。React.js 是一个非常流行的前端框架,它可以帮助我们更高效地构建复杂的用户界面。其中一个常用的 React.js 的包是 rea...

    3 年前
  • npm 包 vue-scroll-record 使用教程

    在前端开发中,实现页面的滚动记录、记忆功能常常是一件让人头疼的问题。针对这一需求,我发现了一个非常好用的 npm 包:vue-scroll-record。该 npm 包可以轻松地实现 vue 页面的滚...

    3 年前
  • npm 包 wkx-react-native-aliyun-push 使用教程

    阿里云移动推送服务是一项非常有用的服务,可以帮助应用快速推送消息给用户,提高用户的留存率。而 wkx-react-native-aliyun-push 这个 npm 包则是一个用于 React Nat...

    3 年前
  • npm 包 @destinationstransfers/ratelimiter 使用教程

    简介 在现代 Web 应用程序中,流量管理是一个必须掌握的技能。现在很多应用的后端处理已经足够快,然而一些不谨慎设计的请求可能会不经意间使系统的负载量暴增。为了能更好地处理这些请求,我们需要使用限流算...

    3 年前
  • npm 包 aabbdd 使用教程

    简介 aabbdd 是一个处理 AABB(Axis Aligned Bounding Box)和 OBB(oriented bounding box)的 JavaScript 库。

    3 年前
  • npm 包 friendly-atoms 使用教程

    在前端开发中,我们常常需要使用各种样式来美化页面。然而,手写样式不仅费时费力,而且容易出错。为了解决这个问题,我们可以使用现成的样式库,例如 Bootstrap、Foundation、Material...

    3 年前
  • npm 包 react-happy-place-canvas 使用教程

    在前端开发中,React 是一套非常流行的 JavaScript 库,而 npm 则是非常方便的包管理工具。在 React 中,我们可以使用 npm 安装许多有用的第三方库,以便更加高效地完成开发工作...

    3 年前
  • npm 包 skm-ng 使用教程

    skm-ng 是一个 npm 包,用于在 Angular 应用程序中集成 Silver Key Media 的电视服务器和媒体中心。在这篇文章中,我们将深入了解 skm-ng 包的使用方法。

    3 年前
  • npm 包 blocke 使用教程

    什么是 blocke blocke 是一个开源的 npm 包,用于通过自定义的 HTML/CSS 代码块快速创建可定制化的编程练习题和教学示例。 blocke 的优点 强大的自定义性和可扩展性 简单...

    3 年前
  • npm 包 snapcare-chat 使用教程

    介绍 snapcare-chat 是一款基于 React 的开源聊天组件库,通过该组件库可以快速构建聊天对话框,支持文本、图片、语音等多种消息类型,同时还支持自定义主题、表情、语音识别等特性。

    3 年前
  • npm 包 Magnet-Koa-Sslify 使用教程

    初识 Magnet-Koa-Sslify Magnet-Koa-Sslify 是一个 Koa 应用程序的 SSL 中间件,它可以非常方便地将 http 请求自动重定向到 https 端口。

    3 年前
  • npm 包 ezscroll 使用教程

    在前端开发中,常常需要添加滚动效果来增强用户体验,而对于那些没有时间和专业知识的开发者来说,建立一个完整、可自定义的滚动效果可能有些棘手,但这并不意味着他们不能使用滚动效果。

    3 年前
  • npm 包 thinkorm_adapter_sqlite3 使用教程

    前言 随着互联网的普及和发展,现在的前端开发已经不只局限于网页的呈现,还涉及到很多方面,比如需要与数据库进行交互。本文将介绍一款基于 Node.js 的 ORM 框架 thinkorm_adapter...

    3 年前
  • npm 包 viewmodel-mongo-plus 使用教程

    简介 viewmodel-mongo-plus 是一个基于 Node.js 的 MongoDB 数据库操作工具,主要用于前端 Web 应用程序的数据处理和管理。该工具可以帮助开发者快速从 MongoD...

    3 年前
  • npm 包 my-monads 使用教程

    前言 在函数式编程范式中,单子(monad)是经常被用到的概念之一。它是将一些操作包装成可组合的单元,使得将多个操作串起来变得更加容易。在 JavaScript 中,我们可以使用定义单子的标准库,例如...

    3 年前
  • npm 包 redux-promise-x 使用教程

    简介 redux-promise-x 是一个基于 redux-promise 的增强版,它支持了异步操作的被取消(cancelled)的情况,同时提供较方便的异步 action 组合方式。

    3 年前
  • npm 包 kmonads 使用教程

    在前端开发中,我们不可避免地要使用各种 npm 包来简化我们的工作。其中,kmonads 是一个非常有用的 npm 包,它提供了许多高级函数和数据类型,可以让我们更便捷地进行函数式编程。

    3 年前
  • npm 包 form-jsonizer 使用教程

    在前端开发中,我们常常需要将一个表单中的数据转换为 JSON 格式,以便传递给后端。手工写代码将表单数据转换为 JSON 数据过于繁琐,所以可以使用 npm 包 form-jsonizer 对表单数据...

    3 年前
  • npm包 simplerdf-iri-finder 使用教程

    简介 在 Web 界面或移动 App 开发中,经常需要引入各种 npm 包来实现所需的功能。其中,simplerdf-iri-finder 就是一个十分常用的包,用于处理RDF的IRI操作。

    3 年前
  • npm 包 tic-tac 使用教程

    简介 tic-tac 是 NPM 上一个易用、简单的小游戏库,可以快速开发井字棋小游戏,提供了多种游戏模式、AI 机器人等高级功能,可谓是一个前端开发必备的利器。 本文将详细介绍 tic-tac 的使...

    3 年前

相关推荐

    暂无文章