在前端开发中,出现错误是常有的事情。为了更好地调试和定位错误,我们通常会加上一些日志或者堆栈信息。而 hypernova-plugin-server-stacktrace 这个 npm 包则提供了一种非常方便的方式,可以在服务端获取到完整的错误堆栈信息。
安装
使用 npm 安装即可:
npm install hypernova-plugin-server-stacktrace
使用
在使用 hypernova 进行服务端渲染的项目中,将 hypernova-plugin-server-stacktrace 作为插件加载即可:
-- -------------------- ---- ------- ----- - ------------ - - --------------------- ----- ------------------- - ---------------------------------------------- ----- ------- - - -- --- -- -- ----- -------- - ---------------------- ---------------------------------- -- --- --
加载完毕之后,在运行 hypernova 的服务时,就可以在终端中看到完整的错误堆栈信息了。例如:
-- -------------------- ---- ------- ----- --------- ---- --------- ---------- ------ ---- -------- -------- -- --------- -- ------------------------- -- ------------ ------------- -- ------------- --------------------------- -- ------------------------------ -- ----------------------------- -- ------------------ ------------------------------- -- --------------- --------------------------------------- -- ----------------------------- --------------------------------------- -- ----------- --------------------------------------- -- ------------- ---------------------------------------
这样我们就可以方便地定位到错误发生的位置和原因了。
示例
有一个简单的超级节点应用,它的渲染逻辑如下:
-- -------------------- ---- ------- -- --------- -------- -------- ------ ----- -- - ----- ------------- - ----------------- -- ----------- - --- ------ - ----- ----------------- ---- ------------------------ -- ----------------------------- ----- ------ -- - -------------- - -------
-- -------------------- ---- ------- -- ------------ ----- - ---------- ---- - - --------------------- ----- ------ - -------------------- ----- ----- - ---- -- ------------------------ -- -------------- ------------------------ -- --------------- ---- -- -- ------------- - ------------ --- --- -- ----- ---------- - ------ ----- -- - -- ----- --- --------- - ------ - ----- ------------- ----- - ---- -------- - -- - -- ----- --- - ----- -- -- - ----- ---- - - - ----- --------- ----- - ------ --------- -- ------ ------ ------- ------ ------ - - -- ----- ------ - ----- ------------------ -- -- ------- ---- ---------- ----- ------------------------------ --------- -- ------
如果我们在运行该应用时,把 "baz" 的字母 z 拼错成 y,就会出现类似下面的错误:
-- -------------------- ---- ------- ----- --------- ---- --------- ---------- ------ ---- -------- -------- -- --------- -- ------------------------ -- ------------ ------------- -- ------------- -------------------------- -- ------------------------------ -- ----------- ------ -- -- ----- -------------------------------- -- --- ------------------------------- -- ------------------------- -------------------------------------- ----- - -------- --------- -- ------ -------- - ------ ------ ----- - -
可以看到,我们能够方便地看到出错的原因所在("Cannot read property 'length' of undefined"),以及具体出错的位置 (myView.js:2:34)。至此,我们已经成功使用了 hypernova-plugin-server-stacktrace 来定位一个错误!
总结
使用 hypernova-plugin-server-stacktrace 可以方便地获取服务端的错误堆栈信息,让我们能够更好地调试和定位错误。在真实的超级节点应用中,我们可以配合更丰富的日志信息,进行更加全面和深入的错误排查。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066c89ccdc64669dde5162