tcomb - проверка сообщения об ошибке пользовательского форматирования

В настоящее время у меня есть t.Number поле.

Когда я звоню t.validate() на это, это дает мне следующее result.errors:

{
    "actual": "James King", 
    "message": "Invalid value \"James King\" supplied to /user_id: Number",
    "path": ["user_id"]
}

Можно ли изменить вывод t.Number валидация иметь:

{
    "actual": "James King", 
    "message": "Oops! The value is invalid", 
    "path": ["user_id"]
}

Кроме того, я понимаю, что results.errors потому что я в NODE_ENV "Развитие"? Если да, то какие результаты. Ошибки я получу, если я нахожусь в "производстве"?

1 ответ

Я понял это в конце.

Согласно: https://github.com/gcanti/tcomb-validation

Присоедините функцию getValidationErrorMessage() к типу. т.е.

Number.getValidationErrorMessage = (value, path, context) => {
  return '"'+value+'" is invalid. It must be a number.';
}

Затем сделал вызов функции проверки tcomb-validate():

const result = t.validate('s', Number);

Это дало результат с настроенным сообщением об ошибке:

result Struct {
  errors: 
   [ Struct {
       message: '"s" is invalid. It must be a number.',
       actual: 's',
       expected: [Object],
       path: [] } ],
  value: 's' }
Другие вопросы по тегам