npm 包 @hapi/bounce 使用教程

阅读时长 5 分钟读完

简介

@hapi/bounce 是一个用于处理已结束请求的包,专门用于 Node.js。这个包可以捕获未处理错误并主动抛出,并可用于进行不同服务器之间的交互。

安装

使用

异常处理

默认情况下,Node.js 会在控制台输出未处理的异常信息。使用 @hapi/bounce 可以自定义异常处理行为。

在处理路由或中间件的函数中,包含 try/catch 语句,并用 @hapi/bounce.rethrow() 抛出异常。

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

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

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

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

--------

Bounce.rethrow() 的第二个参数为错误来源,可用于 log 或区分异常信息来源。

异常回调

有些情况下,需要相应的处理方式而不是仅仅抛出错误。@hapi/bounce 提供 throwErr(err, context, callback) 方法,可以在抛出错误时使用回调函数。

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

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

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

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

--------

throwErr() 的第二个参数为错误来源,可用于 log 或区分异常信息来源。第三个参数为回调函数,用于处理抛出错误后的操作。第四个参数可用于传递上下文信息。

例子

以下例子展示了如何在时区处理异常

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

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

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

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

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

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

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

--------

在此例子中,用户传入一个日期字符串,我们将其转化为以太平洋时间为时区的日期对象,然后将其转换为以亚洲上海时区为基础的日期对象。如果日期字符串不合法,则返回错误消息。

server.events.on() 方法被使用来处理日志信息。如果事件被标记为错误,并且其实例是一个 Error 对象,则我们将抛出错误。

结论

@hapi/bounce 提供了一种方便的机制,可以捕获并处理未处理异常。这个包的功能可以用于 Node.js 的各种用例,特别是与不同服务器之间的交互。在我们的开发流程中,它可以使我们更容易地跟踪错误并采取正确的响应。

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