README
@airquality/custom-error
自定义错误。可统一设置错误码、错误信息和用户自定义属性。
安装
npm i --save @airquality/custom-error
使用
此模块导出一个 CustomError
构造器和一个 createError
函数。
CustomError
new CustomError([code[, params]])
实例化CustomError.set(errors)
配置错误信息CustomError.set(code, message)
配置错误信息CustomError.set(code, properties)
配置错误信息CustomError.get([code])
得到错误信息
在实例化之前,应该先配置统一的错误信息,方法维护。有三种方法可以配置错误信息。
const CustomError = require('@airquality/custom-error')
// 1. 通过一个错误信息对象数组进行配置,每个对象中都必须包含 code 属性,
// message 属性是可选的,它可以是一个字符串模板,在实例化时可通过传
// 入 params 参数编译成最终展示的信息。
CustomError.set([
// code 属性是必须的
{ code: 'ERR_CUSTOM_ERROR1', message: 'message' },
// 可传入字符串模板
{ code: 'ERR_CUSTOM_ERROR2', message: 'error message ${message}' },
// 可忽略 message 参数,并添加用户自定义的属性
{ code: 'ERR_CUSTOM_ERROR3', otherProp: 'other prop' },
])
// 2. 通过传入 code 和 message 字符串进行配置
CustomError.set('ERR_CUSTOM_ERROR4', 'error message')
// 3. 通过传入 code 字符串和 props 对象进行配置
CustomError.set('ERR_CUSTOM_ERROR5', {
message: 'error message',
otherProp: 'other prop',
})
配置错误信息后,可通过 get
方法得到这些信息。
// 根据 code 得到某一条错误信息
// => { code: 'ERR_CUSTOM_ERROR1', message: 'message' }
CustomError.get('ERR_CUSTOM_ERROR1')
// 不传入 code 参数,可得到全部的错误信息(数组)
CustomError.get()
实例化。
// 不传入任何的参数
const customError1 = new CustomError()
// 传入已经配置的 code,输出的错误信息时 code 对应的 message
const customError2 = new CustomError('ERR_CUSTOM_ERROR1')
// 传入的 code 如果没有在配置中,则输出的错误信息就是 code
const customError3 = new CustomError('Non-existent code will be treated as message')
// 可传入 params 参数,解析字符串模板
// 下面输出的错误信息应该是:'error message test'
const customError4 = new CustomError('ERR_CUSTOM_ERROR2', { message: 'test' })
createError(name[, errors])
返回一个构造器,这个构造器的实例的名称前缀为用户输入的 name
参数。传入 errors
数组,可配置错误信息,其具体使用方法与 CustomError.set(errors)
相同。关于构造器的使用方法,与上面的 CustomError
相同。
const { createError } = require('@airquality/custom-error')
const UserError = createError('UserError', [
{ code: 'ERR_CUSTOM_ERROR', message: 'message' },
])
// ...
许可
MIT.