Hapi 框架应用的几个坑点及解决方法

阅读时长 7 分钟读完

Hapi 是一款 Node.js 的 Web 框架,由于其可靠的路由和插件系统、易于测试和扩展,越来越多的前端开发者选择使用 Hapi 进行 Web 应用的开发。但是,在实际应用中会遇到一些问题,本文将介绍 Hapi 应用过程中的一些坑点及解决方法。

1. 关于错误处理

在 Hapi 应用中,如果一个请求出错,你可能希望返回一个错误信息给客户端。对于这种情况,Hapi 提供了一个默认的错误处理机制。默认情况下,如果使用了内置的路由,那么当发生错误时,会返回一个包含错误信息的 JSON 响应。但是,当使用自定义路由时,这个默认的错误处理机制将不再生效。

这里提供一个解决方法:

-- -------------------- ---- -------
-- ----------------
--------------
  ------- ------
  ----- ----
  -------- -------- --------- -- -
    --- -
      -- ------
    - ----- ----- -
      ------ ------------ ------------- ----------- -------------
    -
  -
---
展开代码

2. 关于 cookie

在 Hapi 中,cookie 存储是使用第三方插件 hapi-auth-cookie 来实现的。如果要在应用中使用 cookie 存储,需要先安装和注册该插件。

这里提供一个使用 cookie 存储用户信息的示例代码:

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

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

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

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

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

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

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

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

-------------- -- -
  ------------------- ------- ----- -----------------
----------------------
展开代码

3. 关于上传文件

前端开发中经常需要上传文件,而在 Hapi 应用中,需要使用 hapi-payload-raw 插件来处理上传的文件。

这里提供一个文件上传的示例代码:

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

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

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

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

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

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

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

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

-------------- -- -
  ------------------- ------- ----- -----------------
----------------------
展开代码

结语

通过本文的介绍,相信读者已经对 Hapi 框架的使用有了更深的了解。当然,Hapi 还有很多其他的功能,读者可以参考官方文档了解更多。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6792fbef504e4ea9bd6fba1b

纠错
反馈

纠错反馈