初学 Hapi 应该注意的问题以及如何避免

Hapi 是一种 Node.js web 框架,它提供了很多有用的功能来构建 Web 应用程序。 如果你正在学习 Hapi,你需要注意以下几个问题,以确保你的代码能够正常工作,并且可以在未来轻松维护。

问题一:版本号

在开始编写代码之前,请确保你了解了你所使用的 Hapi 版本。 Hapi 的版本号格式是 MAJOR.MINOR.PATCH,其中 MAJOR 是主要版本号,MINOR 是次要版本号,PATCH 是修复版本号。

如果你使用的是 Hapi 0.x 版本,则需要注意,它与现在的版本有很大不同。 如果你现在使用的是 Hapi 17 或更高版本,一定要阅读官方文档,以确保不会使用已弃用的 API。

问题二:路由

路由是 Hapi 的一个核心概念,它用于将请求映射到适当的处理程序函数。 以下是一些需要注意的事项:

1. 路径格式

在定义路由时,你需要特别关注路径格式。 Hapi 的路径格式支持 parameterized segments。 例如,你可以定义路由 /{id}/{category}/{id},这将允许你从路径中提取 idcategory 参数。 但是,你需要在路径中准确指定这些参数名字,并使用大括号将其括起来。

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

2. 方法

在定义路由的方法时,请确保它们是大写字母。 例如,你应该将 HTTP 方法名称 get 修改为 GET。 否则,Hapi 将无法正确匹配路由,并返回 404 错误。

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

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

3. 处理函数

在处理函数中,你可以使用 request 对象来访问请求的信息,例如查询参数、请求体、请求头等。对于双向数据绑定(如实现“好友列表页”的添加功能),代码样例如下:

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

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

问题三:错误处理

在编写 Hapi 应用程序时,你需要注意错误处理。 如果你未正确处理错误,可能会导致应用程序崩溃或安全漏洞。

Hapi 允许你处理多个类型的错误,例如 HTTP 错误、验证错误等。 你可以通过 throw 语句或返回包含错误信息的响应对象来触发错误。 捕获错误的一种推荐方法是使用中间件函数 onPreResponse,它将在响应已构造但未发送到客户端之前运行。

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

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

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

结论

这篇文章中,我们介绍了 Hapi 的几个主要问题,并提供了解决这些问题的代码示例。 虽然 Hapi 有许多有用的功能,但你必须小心并注意这些注意事项,以确保你的代码能够正常工作,并且可以轻松维护。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67131d80ad1e889fe20a9f37