提个问吧,大佬是怎么处理 mongoose 的异常信息的,总不能把数据库的错误信息直接甩给用户吧
提个问吧,大佬是怎么处理 mongoose 的异常信息的,总不能把数据库的错误信息直接甩给用户吧 来来来,举个栗子, 某一个字段是唯一的,如果没做逻辑判断,插入重复数据,数据库就是抛出异常, 由于异常太多了,真的不好单独处理, 而且我现在是全局去捕获,不知道有没有合适的方法,去吧数据库这些异常过滤掉。
3 回复
如果不让用户知道,你就内部把这个异常给消化掉,抛个500给前端就好啦
可以考虑把捕获的异常写入日志,然后把日志号丢给前端。
比如有个 service 层,这里会有个异常捕获,比如注册用户,然后用户名重复时数据库抛出异常,此时捕获到提示:“注册用户失败”。当然,在全局也会有个异常捕获,提示是:“服务端开小差去了。。。(类似这种)”。总之至少有两个异常捕获,一个与业务相关,另外一个是兜底,防止出现其他意外情况,返回给用户一些奇怪的信息。 另外,如果要把数据库异常过滤,可以看下 mongoose 抛出的错误类型,基于错误类型做不同的异常处理。