Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 March 08

NK

ID:0 in NodeUA - JavaScript and Node.js in Ukraine
Есть ли у вас технический долг?
Анонимный опрос
17%
Да, конечно, наши приложения из него и состоят!
4%
Нет, мы пишем сразу так, чтоб техдолг не появлялся.
47%
А что такое технический долг?
19%
Техдолг есть, но есть план по его ликвидации
14%
Техдолг есть, но надежды его ликвидировать мало.
Проголосовало: 905
источник

VY

Vladimir Yefremov in NodeUA - JavaScript and Node.js in Ukraine
Правильно!
Друзей не продаёшь :)
источник

ОР

Олексій Румянцев... in NodeUA - JavaScript and Node.js in Ukraine
Vladimir Yefremov
Правильно!
Друзей не продаёшь :)
😂
источник

ЯА

Я Анонимный | Пожила... in NodeUA - JavaScript and Node.js in Ukraine
Приветствую всех
источник

ЖШ

Женя Шапошников... in NodeUA - JavaScript and Node.js in Ukraine
Вопрос @tshemsedinov  и всем про валидацию.

Есть POST запрос c телом:
{
email: "asd@das.com"
}

Хочется получить ответ при ошибках:
{
 errors: {
   email: [
     "Необходимо ввести это поле",
     "Не правильный формат для email",
     "Такой email уже есть в базе"
   ]
 }
}

Все библиотеки, которые я находил (joi, superstruct, ow) делают СИНХРОННУЮ валидацию схемы (первые два варианта ошибки), АСИНХРОННУЮ (третий вариант) принято обрабатывать в бизнес логике и потом также подводить к такому же формату.

1) Почему не сделать валидацию асинхронной и завести в нее проверку третьего случая?
Это упростит обработку ошибок и вывод их в апи, т. к. все будут работать через один механизм.

2) Кто какой использует валидатор?

P. S. Нашел только одну библиотеку которая делает валидацию ассинхронно - async-validator, но она имеет баги и слабовата.
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Женя Шапошников
Вопрос @tshemsedinov  и всем про валидацию.

Есть POST запрос c телом:
{
email: "asd@das.com"
}

Хочется получить ответ при ошибках:
{
 errors: {
   email: [
     "Необходимо ввести это поле",
     "Не правильный формат для email",
     "Такой email уже есть в базе"
   ]
 }
}

Все библиотеки, которые я находил (joi, superstruct, ow) делают СИНХРОННУЮ валидацию схемы (первые два варианта ошибки), АСИНХРОННУЮ (третий вариант) принято обрабатывать в бизнес логике и потом также подводить к такому же формату.

1) Почему не сделать валидацию асинхронной и завести в нее проверку третьего случая?
Это упростит обработку ошибок и вывод их в апи, т. к. все будут работать через один механизм.

2) Кто какой использует валидатор?

P. S. Нашел только одну библиотеку которая делает валидацию ассинхронно - async-validator, но она имеет баги и слабовата.
Пишите руками, не используйте библиотеки из npm
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
Yup делает асинхронную валидацию и можно дописать свой метод
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
Про «писать самим» не согласна, то что через joi/yup делается в 10-12 строчек они сами наколбасят в 120. И если по джои можно найти документацию то разобраться в самописном валидаторе Васи Петрова который давно уволился - то еще удовольствие
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Женя Шапошников
Вопрос @tshemsedinov  и всем про валидацию.

Есть POST запрос c телом:
{
email: "asd@das.com"
}

Хочется получить ответ при ошибках:
{
 errors: {
   email: [
     "Необходимо ввести это поле",
     "Не правильный формат для email",
     "Такой email уже есть в базе"
   ]
 }
}

Все библиотеки, которые я находил (joi, superstruct, ow) делают СИНХРОННУЮ валидацию схемы (первые два варианта ошибки), АСИНХРОННУЮ (третий вариант) принято обрабатывать в бизнес логике и потом также подводить к такому же формату.

1) Почему не сделать валидацию асинхронной и завести в нее проверку третьего случая?
Это упростит обработку ошибок и вывод их в апи, т. к. все будут работать через один механизм.

2) Кто какой использует валидатор?

P. S. Нашел только одну библиотеку которая делает валидацию ассинхронно - async-validator, но она имеет баги и слабовата.
у вас все ошибки взаимоисключающие. зачем делать дополнительные проверки, если уже после первой понятно, что значение поля не подходит
источник

RS

Roman Sachenko in NodeUA - JavaScript and Node.js in Ukraine
Использую Joi или express-validator. В случае с NestJS - class-validator, он там из коробки.

https://www.npmjs.com/package/joi
https://www.npmjs.com/package/express-validator
https://www.npmjs.com/package/class-validator

@tshemsedinov У Вас есть примеры вот таких вот самодельных валидаторов?
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
Но вообще я не тулила бы проверку существования email в валидацию. Потому что хорошее rest api на неправильные входные данные должно отвечать статусом 400 bad request, а в случае если email уже существует - 409 Conflict
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Roman Sachenko
Использую Joi или express-validator. В случае с NestJS - class-validator, он там из коробки.

https://www.npmjs.com/package/joi
https://www.npmjs.com/package/express-validator
https://www.npmjs.com/package/class-validator

@tshemsedinov У Вас есть примеры вот таких вот самодельных валидаторов?
Весь код самописный по своей природе
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
Это ошибки разной категории. Неправильные входящие данные это один род ошибок, а «уже существует» - другой
источник

RS

Roman Sachenko in NodeUA - JavaScript and Node.js in Ukraine
Да, я понимаю. @tshemsedinov

Но я спрашиваю, если есть Ваши примеры. Если посмотреть можно :)
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Roman Sachenko
Да, я понимаю. @tshemsedinov

Но я спрашиваю, если есть Ваши примеры. Если посмотреть можно :)
источник

RS

Roman Sachenko in NodeUA - JavaScript and Node.js in Ukraine
Спасибо, Тимур.
источник

OV

Olga Vital.evna in NodeUA - JavaScript and Node.js in Ukraine
сообщать
источник

ES

Elena Sharovar in NodeUA - JavaScript and Node.js in Ukraine
Смотря какая конечная цель ) может конечно и сам писать, если его цель научиться что-то писать и это не продакшен проект
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Olga Vital.evna
сообщать
Что я вам могу сказать? Могу, разве что, кое-что сообщить
источник