错误对象,本地和自定义,如何区分
Error objects, native and custom, how to tell the difference?
在我的节点应用程序中,我希望处理自定义错误和本机错误。我似乎总是很难处理错误,因为错误似乎是一种特殊类型的对象,而不是普通的JavaScript对象。
我正在尝试将错误用于自定义错误。
我想要得到的是一个JSON字符串,可以针对两种类型的错误(自定义和本机)返回给客户端。
我可以创建一个自定义错误,如:
errors.create({
name: `UnableToDelete`,
defaultMessage: `Unable to perform delete.`
});
let e1 = new errors.UnableToDelete({
explanation: `Group has members. You can't delete a group that has members.`
});
我可以创建一个本地错误,如:
let e2 = new Error(`Unable to perform delete.`);
我还可能从其他地方得到本机错误,比如从节点或另一个第三方模块,例如,如果连接到数据库时出现问题。
- 对于自定义错误,我可以使用有效的
JSON.stringify(e1);
- 对于本机错误,我可以使用有效的
errors.errorToJSON(e2);
我的问题是能够区分这些错误,所以我可以调用正确的方法
我不想用正确的方法包装代码中的每个错误。我想让我的Express错误处理程序做到这一点:
function error(err, req, res, next) {
// use either JSON.stringify() or errors.errorToJSON() on
// the err object.
}
我如何区分自定义错误和本机错误,以便知道使用哪种方法。。?
nodejs模块errors
导出一个名为isError(err)
的函数,如果您发送由该模块创建的自定义错误,该函数将返回true
。
var customError = new errors.HttpError();
var nativeError = new Error();
errors.isError(customError); // Will return true
errors.isError(nativeError); // Will return false
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- jQuery自定义验证比较多个输入的序列
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 在wordpress一定时间后更改自定义字段
- 表达式引擎扩展开发-向呈现的条目添加自定义javascript
- 自定义函数中的光标位置
- 用于检查数组中是否存在元素的javascript自定义方法
- 绑定时将Parsley minlength消息作为选项传递时,未对其进行自定义
- Meteor-添加用户自定义字段的方法不起作用
- 自定义表单验证和提交
- jQuery工具验证器自定义效果-添加&消除影响
- 可以't计算自定义谷歌地图的js
- 谷歌水印未显示在自定义搜索框中
- vaadin:使用自定义布局集成angular js
- DataTables-创建自定义分页样式(加载更多样式)
- 实现一个建立在google.com之上的自定义搜索引擎
- 添加自定义标记以自动完成
- 在每次文件上传时发送带有放置区的自定义数据.js
- 如何在wordpress帖子区添加自定义javascript