Хочется регистрировать пользователей и, в зависимости от их статуса "просто пользователь" или "профессионал" валидировать поля. Т.е. если "просто пользователь", то на сервере достаточно только "email","password", а если "профессионал", то валидируются (необходимы) эти поля + еще (тоже необходимы). Такую валидацию надо как-то по особенно описывать в модели (Mongoose) или это делается всё на уровне контроллера Express? типа, "если такой-то, то данные уходят в модель такие-то". Есть какой нибудь пример?
А схемы тоже разные? Поле, допустим, "адрес" не должно быть у " просто пользователя", но должно быть обязательно у профессионала. Всё равно как то надо описать в монго это.
Да, виноват. Наверное, описал как-то путанно. Я хочу регистрировать два типа пользователей - пользователи и профессионалы. Мне необходимо валидировать их - у простых пользователей при регистрации можно указать только лишь мыло и пароль, а вот у профессионалов (это выбирается на первом окне регистрации) необходимо указать еще некоторые данные (специальность, адрес и т.д.). Соответственно, и вопрос - как составить схему в базе. Если я укажу required у поля адрес, то валидация будет ругаться когда просто пользователь будет сохранять данные - ведь ему адрес указывать не надо. Если я required у адреса не укажу, то получится, что профессионал может не сохранять адрес, а это необходимо.
Сергей: в БД делаете максимумальное количество полей. Делаете два метода - регистрация обычного пользователя (с одним набором полей и правилами валидации), и регистрация премиум (с другим набором полей и другими правилами валидации). Кроме набора данных, непосредственно полученных от пользователя, методы должны устанавливать флаги "обычный/премиум".
Вывод тоже можно сделать различным, переключая по флагам.