Проверка на правильность данных пользователя node.js/express.js

У меня на сайте пользователь вводит данные, email, gmail, password, форма отправляется обычным способом submit, на клиенте проверяю данные, если всё окей, отправляю на сервер, там данные ещё раз проверяются, и отправляется ответ в виде страницы профиля если всё окей, если что-то не так, отправляется ошибка, но при отправке ответа, пользователю отправляется новая страница, тем самым все введенные данные пропадают. Это не проблема, так как данные сначала проверяются клиентом. Вот как это выглядит:

$("#form").submit(function(e){
 try{
    e.preventDefault();
    let email = $("input[name ='email']").val();
    let username = $("input[name ='username']").val();
    let password = $("input[name ='password']").val();

    if(email !== '' && username !== '' && password !== ''){
      //Функция для проверки данных, если что-то не так, возвращает - err, иначе - data 
      validate(email, username, password, function(err, data){
         //Если ошибка - выводим, иначе отправляем форму на сервер
         err ? showMessage(err) : $('#form').off().submit();
      });
    }else{ 
        showMessage('Do not leave fields blank.');
    }
 }catch(err){
     showMessage('Something went wrong.');
 }
});

Проблема в том, что мне ещё нужно проверить существует ли уже такой пользователь с email или username. Решение - отправлять ajax/fetch запрос на сервер перед отправкой формы, чтобы проверить, и динамически показать сообщение пользователю на клиенте без загрузки новой html страницы, существует ли такой email/username или нет, но сразу приходит в голову, правильное ли это решение, является ли он костылем? Или отправлять данные c ajax для их проверки, и динамического вывода сообщений без отправки новой html страницы - не плохая идея? Просто мне кажется что проверять данные два раза (сначала по ajax, потом при отправке самой формы) не совсем хорошо. Не хочу использовать ajax для отправки формы, так как он не совсем подходит для получения страницы html, то есть вставлять html он умеет, но при обновлении страницы всё пропадает. Прошу помощи у опытных программистов, так как не знаю что делать, спасибо. !)


Ответы (0 шт):