- 作用:
Error.captureStackTrace用于打印出更详细的错误信息。 - 错误代码:
{
"code": "404",
"content": "{}未找到。",
"type": 2
}
- 调用方式:
1.return next(new APIError({code: '404', messageInfo: ['用户']}));
2.return next({code: '404', messageInfo: ['用户']});
打印结果中,添加 new APIError 可以打印出更加确切的错误信息,内容放在trace=[]中。如果不添加则trace内容就为[]。next一般用于错误信息返回。
附APIError方法
/**
* @extends Error
*/
class ExtendableError extends Error {
constructor(messageObj, status) {
let message,
messageInfo;
if (messageObj instanceof Object) {
message = messageObj.code;
messageInfo = messageObj.messageInfo;
} else {
message = messageObj;
}
super(message);
this.name = this.constructor.name;
this.code = message;
this.messageInfo = messageInfo;
this.status = status;
Error.captureStackTrace(this, this.constructor.name);
}
}
/**
* Class representing an API error.
* @extends ExtendableError
*/
class APIError extends ExtendableError {
/**
* Creates an API error.
* @param {string, object} messageObj - Error Object.
* @param {number} status - HTTP status code of error.
*/
constructor(messageObj, status = 500) {
super(messageObj, status);
}
}
module.exports = APIError;