我试图让我的http api服务器中的错误处理正常工作,我不明白节点的错误处理行为.
我已经定义了我自己的错误对象,如下所示:
function ServerError(statusCode,err,message) { this.status = statusCode; if (err != undefined) { this.err = err; if (message != undefined) { this.message = message; } else { this.message = err.message || err; } } } ServerError.prototype = new Error();
我在中间件或处理程序中使用这样的对象:
function forceError() { return function(req,res,next) { next(new ServerError(500,"Internal error!")); } }
如果未定义任何处理程序,则会将此错误打印到控制台并在响应正文中返回.对于像TypeErrors这样的事情以及我自己的错误都会发生这种情况.这很糟糕,因为它包含堆栈跟踪和文件名/路径.
为什么快递返回堆栈跟踪?我认为默认行为只是崩溃,因此不会将服务器上的任何信息泄露给客户端.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。