Sumor Cloud 도구.
더 많은 문서
다국어를 지원하고, 미리 정의된 오류 코드 및 데이터 전달을 지원하는 오류 처리 라이브러리.
npm i @sumor/error --save
Node.JS 버전 16.x 이상이 필요합니다.
이 패키지는 ES 모듈로 작성되었으므로, package.json
파일에서 다음 코드를 변경해주세요:
{
"type": "module"
}
import defineError from '@sumor/error'
const MyError = defineError({
code: {
USER_NOT_FOUND: '사용자를 찾을 수 없습니다',
USER_EXISTED: '사용자 {name}이 이미 존재합니다'
}
})
throw new MyError('USER_NOT_FOUND')
// 출력: Error: 사용자를 찾을 수 없습니다
throw new MyError('USER_EXISTED', { name: 'Alice' })
// 출력: Error: 사용자 Alice이 이미 존재합니다
import defineError from '@sumor/error'
const MyError = defineError({
language: 'en', // 기본 언어
code: {
USER_NOT_FOUND: '사용자를 찾을 수 없습니다',
USER_EXISTED: '사용자 {name}이 이미 존재합니다'
},
i18n: {
zh: {
USER_NOT_FOUND: '사용자를 찾을 수 없음',
USER_EXISTED: '사용자 {name}이 이미 존재함'
}
}
})
const error = new MyError('USER_EXISTED', { name: 'Alice' })
error.language = 'en' // 오류 언어 변경
console.log(error)
// 출력: Error: 사용자 Alice이 이미 존재합니다
error.language = 'zh' // 오류 언어 변경
console.log(error)
// 출력: Error: 사용자 Alice이 이미 존재함
import defineError from '@sumor/error'
const MyError = defineError({
code: {
USER_NOT_FOUND: '사용자를 찾을 수 없습니다',
USER_EXISTED: '사용자 {name}이 이미 존재합니다'
}
})
const error = new MyError('USER_EXISTED', { name: 'Alice' })
console.log(error.json())
// 출력: {"code":"USER_EXISTED","message":"사용자 Alice이 이미 존재합니다"}
import defineError from '@sumor/error'
const MyError = defineError({
code: {
FIELD_VERIFY_FAILED: '필드 확인 실패',
FIELD_CANNOT_EMPTY: '필드 {name}은 비워둘 수 없습니다',
FIELD_TOO_LONG: '필드 {name}이 너무 깁니다'
},
i18n: {
zh: {
FIELD_VERIFY_FAILED: '필드 확인 실패',
FIELD_CANNOT_EMPTY: '필드 {name}은 비워둘 수 없습니다',
FIELD_TOO_LONG: '필드 {name}이 너무 깁니다'
}
}
})
const error = new MyError('FIELD_VERIFY_FAILED', {}, [
new MyError('FIELD_CANNOT_EMPTY', { name: '사용자 이름' }),
new MyError('FIELD_TOO_LONG', { name: '비밀번호' })
])
console.log(error.json())
/*
출력:
{
"code":"FIELD_VERIFY_FAILED",
"message":"필드 확인 실패",
"errors":[
{
"code":"FIELD_CANNOT_EMPTY",
"message":"필드 사용자 이름은 비워둘 수 없습니다"
},{
"code":"FIELD_TOO_LONG",
"message":"필드 비밀번호이 너무 깁니다"
}
]
}
*/
error.language = 'zh'
console.log(error.json())
/*
출력:
{
"code":"FIELD_VERIFY_FAILED",
"message":"필드 확인 실패",
"errors":[
{
"code":"FIELD_CANNOT_EMPTY",
"message":"필드 사용자 이름은 비워둘 수 없습니다"
},{
"code":"FIELD_TOO_LONG",
"message":"필드 비밀번호이 너무 깁니다"
}
]
}
*/
import defineError from '@sumor/error'
const MyError = defineError({
code: {
FIELD_VERIFY_FAILED: '필드 확인 실패',
FIELD_CANNOT_EMPTY: '필드 {name}은 비워둘 수 없습니다',
FIELD_TOO_LONG: '필드 {name}이 너무 깁니다'
}
})
const error = new MyError('FIELD_VERIFY_FAILED', {}, [
new MyError('FIELD_CANNOT_EMPTY', { name: '사용자 이름' }),
new MyError('FIELD_TOO_LONG', { name: '비밀번호' }),
new Error('알 수 없는 오류')
])
console.log(error.json())
/*
출력:
{
"code":"FIELD_VERIFY_FAILED",
"message":"필드 확인 실패",
"errors":[
{
"code":"FIELD_CANNOT_EMPTY",
"message":"필드 사용자 이름은 비워둘 수 없습니다"
},{
"code":"FIELD_TOO_LONG",
"message":"필드 비밀번호이 너무 깁니다"
},{
"code":"UNKNOWN_ERROR",
"message":"알 수 없는 오류"
}
]
}
*/