npm 包 @hapi/bounce 使用教程

简介

@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


猜你喜欢

  • npm 包 @elastic/babel-preset-kibana 使用教程

    如果你正在开发一个基于 Kibana 的 web 应用程序,那么你一定会对 @elastic/babel-preset-kibana 这个 npm 包感兴趣。这个包是一个 Babel 预设,它包含了许...

    5 年前
  • npm 包 @egis/build-tools 使用教程

    前言 在前端开发的过程中,构建工具的使用是非常必要的。而 @egis/build-tools 是一个非常优秀的构建工具,它能够帮助我们快速搭建一个适合自己的前端工程。

    5 年前
  • npm 包 babel-preset-es2015-mod 使用教程

    随着前端工具的不断更新,现在不少工具已经能支持 ES6 及以上的新特性,但是部分浏览器并不支持这些新特性,这时候就需要使用 Babel 这样的工具将代码转换成 ES5 语法,以便同时兼顾浏览器的兼...

    5 年前
  • npm 包 u-test 使用教程

    前言 在前端开发过程中,编写高质量的代码是非常重要的,而编写高质量代码的前提是必须有良好的测试覆盖率。测试可以保证我们的代码不会在生产环境出现错误,可以提前预防潜在的问题,同时也方便我们在开发过程中进...

    5 年前
  • npm 包 cody-cli 使用教程

    cody-cli 是一个基于 Node.js 平台的命令行工具,可以用来快速创建和管理前端项目。cody-cli 支持使用多种框架,例如 React 和 Vue 等。

    5 年前
  • `npm` 包 @dlghq/babel-preset-dialog 使用教程

    前言 在开发前端项目时,我们可能需要对现代JavaScript语法进行转换,以让我们的代码在不同的环境中得到更好的兼容性。在这种情况下,我们通常会选择使用 Babel 作为我们的转换工具。

    5 年前
  • npm 包 @dinoboff/babel-preset-stage-4 使用教程

    前言 在现代化的 Web 开发中,前端应用经常涉及到最新的 ECMAScript 标准。为了能够编写符合当前标准的 JavaScript 代码,并让它在现代化的浏览器中运行,我们需要使用 Babel ...

    5 年前
  • npm 包 @ava/babel-preset-stage-4 使用教程

    @ava/babel-preset-stage-4 是一个用来构建前端项目的 JavaScript 编译器,可以把 ES6/7/8/9 代码转换成 ES5 代码。这个 npm 包包含了 babel-p...

    5 年前
  • npm 包 @babel/plugin-transform-exponentiation-operator 使用教程

    简介 @babel/plugin-transform-exponentiation-operator 是一个 Babel 转换插件,用于将 ES2016 中的幂运算符(**)转换成 ES5 中的 Ma...

    5 年前
  • npm 包 react-scrollbars-custom 使用教程

    随着 Web 应用程序越来越复杂,滚动条已成为用户界面设计的必要组成部分。然而,浏览器提供的默认滚动条往往较难修改和自定义,不能满足开发者的需求。而 npm 包 react-scrollbars-cu...

    5 年前
  • npm 包 @babel/plugin-transform-property-literals 使用教程

    在现代 web 开发中,前端工程师们经常需要使用到各种不同的工具和框架来提高开发效率和代码质量。其中,Babel 是一个非常流行的工具,它可以将最新的 JavaScript 语法转换为大多数浏览器都支...

    5 年前
  • npm 包 @babel/plugin-transform-member-expression-literals 使用教程

    在前端开发中,我们经常会使用 JavaScript 语言。然而,在开发过程中,我们会遇到一些问题,例如代码的可读性不高,浏览器兼容性问题等等。解决这些问题的方法之一是使用 Babel 转码器。

    5 年前
  • npm 包 @babel/plugin-proposal-nullish-coalescing-operator 使用教程

    介绍 在 JavaScript 中,当我们想要给一个变量赋一个默认值,或者想要在变量为空或者为 null 或 undefined 的时候给它赋一个默认值,通常我们会使用三元运算符或者逻辑或运算符。

    5 年前
  • npm 包 @babel/plugin-proposal-logical-assignment-operators 使用教程

    什么是 @babel/plugin-proposal-logical-assignment-operators? @babel/plugin-proposal-logical-assignment-o...

    5 年前
  • npm 包 @babel/plugin-proposal-function-sent 使用教程

    什么是 @babel/plugin-proposal-function-sent? @babel/plugin-proposal-function-sent 是一个 Babel 插件,它允许使用 fu...

    5 年前
  • npm 包 @babel/plugin-proposal-function-bind 使用教程

    什么是 @babel/plugin-proposal-function-bind @babel/plugin-proposal-function-bind 是一个 Babel 插件,它可以将函数绑定语...

    5 年前
  • npm 包 @babel/plugin-proposal-export-namespace-from 使用教程

    在前端开发中,我们经常需要将模块导入到我们的项目中,使用模块可以让我们的代码更加模块化、可维护性更高。然而在一些情况下,我们需要从一个模块中导入多个子模块,这时候 @babel/plugin-prop...

    5 年前
  • npm 包 @babel/plugin-proposal-do-expressions 使用教程

    在前端项目中,我们经常使用到 Babel 进行代码转换。其中,@babel/plugin-proposal-do-expressions 是一个 Babel 插件,可以将 JavaScript 代码中...

    5 年前
  • npm 包 skatejs-template-html 使用教程

    在前端开发中,我们经常需要使用一些框架和库来辅助我们的开发工作。其中,npm 是一个非常流行的包管理器,它可以帮助我们方便地安装、管理和使用各种工具和组件。本文将介绍一个名为 skatejs-temp...

    5 年前
  • npm 包 skatejs 使用教程

    什么是 SkateJS SkateJS 是一个 Web 组件开发库,提供了一种用于创建自定义元素的方式。在 SkateJS 中,您可以自定义元素的行为,直接使用原生 DOM API 操作元素的内部结构...

    5 年前

相关推荐

    暂无文章