如何在猫鼬中返回自定义错误?

Posted

技术标签:

【中文标题】如何在猫鼬中返回自定义错误?【英文标题】:How return custom errors in mongoose? 【发布时间】:2019-03-06 20:47:07 【问题描述】:

拥有 mongoose 模型是否可以使用 .on('error) 侦听器直接向模型添加错误处理?

我的目标是根据其来源将自定义错误消息添加到传入的错误中。此外,我还在考虑更改错误消息以使其对用户更友好。

this.model.on('error', function(error) 
  if (someCondition)
    error = new ApolloError('Custom message', 'NOT_FOUND')
   return error;
);

基本上,每当 mongoose 抛出满足某些条件的错误时,我希望收到带有代码 NOT_FOUND 的错误和自定义消息。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我想出了以下解决方案,即使用apollo-server-errors中的toApolloError util

this.model.on('error', function(error) 
  toApolloError(error, 'USER_INPUT_ERROR');
);

【讨论】:

以上是关于如何在猫鼬中返回自定义错误?的主要内容,如果未能解决你的问题,请参考以下文章

Hello World 在猫鼬中显示为字段响应

当我想在猫鼬中从数据库中查找文档时,函数返回未定义 [重复]

如何在猫鼬中使用聚合

如何在猫鼬中捕获错误代码

如何在猫鼬中填充模型

在猫鼬上自定义 json 输出