В чем разница между проверкой mon goose и использованием express -validator - PullRequest
2 голосов
/ 09 мая 2020

Исходя из моих собственных знаний, вы можете выполнять почти все проверки в схеме mon goose, которые вы можете сделать с помощью express -validator. Так что, пожалуйста, могу ли я просто использовать mon goose, или есть ситуация, когда мне тоже нужно будет использовать express -validator, даже если я создаю только новые документы

1 Ответ

2 голосов
/ 10 мая 2020

В самом деле, вы можете выполнять почти все проверки в своей схеме mon goose, как при использовании express -validator. Mon goose теперь поддерживает проверку и на update, так что вы можете go.

Позвольте мне указать на два случая:

  • Если Проверка logi c проста и мала, с проверкой mon goose проблем нет. Но в случае сложных правил проверки и нескольких полей, тогда express -validator может быть лучшим выбором.

    Если mon goose встроенных валидаторов недостаточно для вашего журнала проверки c вам необходимо создать настраиваемые валидаторы . Вам придется добавить намного больше строк кода, в результате чего получится слишком большой файл модели mon goose.

    Насколько я понимаю, я хочу, чтобы файлы модели js были как можно более чистыми. Express -validator, который является оболочкой для валидатора. js предлагает валидаторы (например, isAlphanumeri c, isEmail и многие другие), которые могут избавить вас от большого количества строк кода. Таким образом, вы сохраняете журнал проверки c в отдельных файлах, а ваш код становится более чистым и организованным.

  • Другой момент касается потока выполнения кода .
    Express -validator - это промежуточное ПО для проверки. Когда вы отправляете форму через почтовый запрос, вы можете запустить журнал проверки c и в случае какой-либо ошибки возвращать сообщения об ошибках клиенту, не дойдя до контроллера или кода службы.

    Опять же, на мой перспектива - плохая практика для запуска кода контроллера или другого сервиса (в зависимости от вашей архитектуры) с отправкой данных от клиента без проверки или дезинфекции. При использовании Express -validator, когда поток выполнения кода достигает логики контроллера c, это означает, что данные, которые вы собираетесь вставить в базу данных, хорошо проверяются и дезинфицируются.

    Без использования какого-либо промежуточного программного обеспечения для проверки вы должны запустить весь лог c контроллера и дождаться возможной ошибки проверки, только когда поток достигнет метода сохранения или обновления mon goose. Представьте, что ваш контроллер включает в себя десяток сервисных функций. Зачем запускать весь этот logi c, если он должен отменить его из-за неверных данных?

В заключение, оба метода могут удовлетворять вашим правилам проверки. На мой взгляд, go с Exspress-validator для более чистого и организованного кода, а также для лучшего и более безопасного выполнения кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...