简介
@hapi/bounce 是一个用于处理已结束请求的包,专门用于 Node.js。这个包可以捕获未处理错误并主动抛出,并可用于进行不同服务器之间的交互。
安装
npm install @hapi/bounce
使用
异常处理
默认情况下,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