【极易维护】分享一个自己手写的前后端错误映射方案

383 阅读1分钟

此篇文章仅代表个人观点,若有问题可在留言区指正批评。

我们都知道用户在使用一个产品的过程中,如果误操作得到的提示是看不懂的,体验该有多差。说到这里,可能有人就会有人有疑问,看不到的提示怎么会渗透到用户端,可现实就是如此,无论测试几个版本,意外总是会发生的。下面我来给出一种方案,仅仅用两个文件,来解决映射错误统一处理的方案。

// 第一个文件,错误处理
class ErrorMap {
  constructor(status = 'default', context = 'default') {
    this.status = status
    this.context = context
    this.data = require('./index.json')
  }

  getError() {
    const status = this.data && this.data[this.status]
    const context = status && status[this.context]
    return context
  }
}

const getErrorMessage = function(status = 'default', context = 'default') {
  const error = new ErrorMap(status, context)
  const message = error.getError()
  return message
}

export default getErrorMessage


// 第二个文件 errMap.json,错误中英文对应
{
    "409" : {
        "default": "默认错误",
        "user not exist or password error" : "用户名或密码错误",
        "old password error": "原密码输入错误,请重新输入",
        "captcha verification failed": "验证未通过"
    },
    "402": {
        "default": "默认错误"
    },
    "401": {
        "default": "无效参数"
    }
}

说白了,我们只要把中英文错误对应写到errorMap.json文件中,定位问题是非常快的,下面我给出使用的示例。

import getError from './errorMap'

function errorGet() {
    const err = getError(status, error)
    console.log(err)
}

// 另外给出项目github地址 https://github.com/equicy/errMap,欢迎有兴趣的人一块来维护,改进。