如何改善express.js错误堆栈跟踪?

时间:2018-10-31 19:48:17

标签: node.js express

我正在使用带有Express的Node作为API。当前,如果抛出意外错误,则为输出:

  "stack": "APIError: test error\n    at new ExtendableError 
(/home/user/workspace/test-api/server/helpers/error.ts:25:11)\n    at new APIError 
(/home/user/workspace/test-api/server/helpers/error.ts:41:5)\n
    at app.use (/home/user/workspace/test-api/config/express.ts:112:24)\n
    at Layer.handle_error (/home/user/workspace/test-api/node_modules/express/lib/router/layer.js:71:5)\n
    at trim_prefix (/home/user/workspace/test-api/node_modules/express/lib/router/index.js:315:13)\n    at /home/user/workspace/test-api/node_modules/express/lib/router/index.js:284:7\n
    at Function.process_params (/home/user/workspace/test-api/node_modules/express/lib/router/index.js:335:12)\n
    at next (/home/user/workspace/test-api/node_modules/express/lib/router/index.js:275:10)\n
    at Layer.handle_error (/home/user/workspace/test-api/node_modules/express/lib/router/layer.js:67:12)\n
    at trim_prefix (/home/user/workspace/test-api/node_modules/express/lib/router/index.js:315:13)\n
    at /home/user/workspace/test-api/node_modules/express/lib/router/index.js:284:7\n
    at Function.process_params (/home/user/workspace/test-api/node_modules/express/lib/router/index.js:335:12)\n
    at next (/home/user/workspace/test-api/node_modules/express/lib/router/index.js:275:10)\n 
    at Layer.handle_error (/home/user/workspace/test-api/node_modules/express/lib/router/layer.js:67:12)\n
    at trim_prefix (/home/user/workspace/test-api/node_modules/express/lib/router/index.js:315:13)\n 
    at /home/user/workspace/test-api/node_modules/express/lib/router/index.js:284:7\n
    at Function.process_params (/home/user/workspace/test-api/node_modules/express/lib/router/index.js:335:12)\n 
   at next (/home/user/workspace/test-api/node_modules/express/lib/router/index.js:275:10)\n 
   at /home/user/workspace/test-api/node_modules/express/lib/router/index.js:635:15\n
   at Immediate.next (/home/user/workspace/test-api/node_modules/express/lib/router/index.js:260:14)\n
   at Immediate.<anonymous> (/home/user/workspace/test-api/node_modules/express/lib/router/index.js:635:15)\n 
   at runCallback (timers.js:812:20)\n 
   at tryOnImmediate (timers.js:768:5)\n
   at processImmediate [as _immediateCallback] (timers.js:745:5)",

如果可以显示发生这种情况的文件,行号和函数,但我不知道如何执行此操作,我会喜欢它。

任何人都可以帮助或指出我正确的方向吗?

作为参考,您可以看到我的项目基于here的样板。快速设置可以在config/express.ts

中找到

1 个答案:

答案 0 :(得分:0)

尝试添加source-map-support。您的堆栈跟踪实际上是在显示触发错误的代码的文件和行号,但似乎在已编译的代码上显示了它。安装软件包,然后在您的输入文件中调用install()

$ npm install --save-dev source-map-support

// entry.ts
require('source-map-support').install();