jm-err

common error defines as JSON format

Usage no npm install needed!

<script type="module">
  import jmErr from 'https://cdn.skypack.dev/jm-err';
</script>

README

English | 简体中文

jm-err

common error defines as JSON format.

used for return json format info on RESTful api.

define an Err

const Err = {
    SUCCESS: {
        err: 0, // unique code, integer
        status: 500, // status, integer
        msg: 'Success', // message, string
        ... // else info
    },
    ...
}

status: Http status

if status is not defined, status = err when err is Http status value, otherwise 500.

install

npm i jm-err

usage

use Err:

const {Err} = require('jm-err')

console.log(Err.FAIL)

throw an error.

const {Err, err} = require('jm-err')

throw err(Err.FAIL)

throw err('string as param')

// define a new Err
throw err({
  err: 222,
  msg: 'main msg',
  else: 'msg else'
})

// e.data == Err.FA_NOAUTH
const e = err(Err.FA_NOAUTH)
const {
  code,
  status, 
  message,
  data
} = e

output error info:

Error: Fail
    at err (E:\jamma\core\packages\jm-err\lib\index.js:150:13)
    ...
  code: 1,
  status: 500,
  data: { err: 1, msg: 'Fail', status: 500 }
}

template message support

const {err} = require('jm-err')
const e = err('err param: ${param} paramNum: ${num}', {
  param: 'abc',
  num: 123
})
console.log(e.message)
//print 'err param: abc paramNum: 123'

// define template in Err
const ErrSample = {
  err: 1,
  status: 500,
  msg: 'err param: ${param} paramNum: ${num}'
}
const e2 = err(ErrSample, {
  param: 'abc',
  num: 123
})
console.log(e2.message)
// print 'err param: abc paramNum: 123'

i18n

const {Err:{FAIL:{msg}}, t} = require('jm-err')
console.log(msg)
// 输出 'Fail'
console.log(t(msg, 'zh-CN'))
console.log(msg)
// 输出 '失败'

defined Errs

name err status msg
SUCCESS 0 200 Success
FAIL 1 Fail
FA_SYS 2 System Error
FA_NETWORK 3 Network Error
FA_PARAMS 4 Parameter Error
FA_BUSY 5 Busy
FA_TIMEOUT 6 Time Out
FA_ABORT 7 Abort
FA_NOTREADY 8 Not Ready
FA_NOTEXISTS 9 Not Exists
FA_EXISTS 10 Already Exists
FA_VALIDATION 11 Validation Error
OK 200 OK
FA_BADREQUEST 400 Bad Request
FA_NOAUTH 401 Unauthorized
FA_NOPERMISSION 403 Forbidden
FA_NOTFOUND 404 Not Found
FA_INTERNALERROR 500 Internal Server Error
FA_UNAVAILABLE 503 Service Unavailable

Contributing

Any type of contribution is welcome, here are some examples of how you may contribute to this project:

  • Use jm-err in your daily work.
  • Submit issues to report bugs or ask questions.
  • Propose pull requests to improve our code.