Hey, je développe l'API d'une application en nodejs avec express et mongodb et je fais fasse à un pb que je sais pas résoudre proprement, je suis pas un pro du js :
je reçois un formulaire comprenant un pseudo, une adresse mail et un password.
le pseudo et l'adresse mail doivent faire fasse à une vérification de la base de donnée pour vérifier qu'ils sont pas déjà utilisés en plus d'une vérification via un regex. Le soucis étant que mon client est une appli react, au cas où la vérification foire, pour que mon client puisse afficher proprement les erreurs je renvoie un json avec toutes les erreurs possibles :
let response = {
"nickName": {
"valid" : null,
"available" : null // check de la BD
},
"mail" : {
"valid" : null,
"available" : null // check de la BD
},
"password" : {
"valid" : null
},
}
voilà comment je fais mon check :
if(nickName && nickNameRegex.test(nickName)){
response["nickName"]["valid"] = true;
DB_access.checkUserNickname(nickName).then((e)=>{ // promise
if(e.length>0){
response["nickName"]["available"] = false;
}else{
response["nickName"]["available"] = true;
}
}).catch((e)=>{
console.log("Nickname checking ERROR : ",e);
});
}else{
response["nickName"]["valid"] = false;
}
Ce bout de code là n'est que pour le nickname. Il y a juste après exactement la même chose appliquée à l'email puis une simple vérif regex pour le password mais comme vous vous en doutez, ça ne marche pas. Effectivement, la réponse (le json du début) m'indique que le serveur renvoie une valeur avant d'avoir fait le check sur la base de donnée.
Donc voilà ma question. Dois-je réellement imbriquer les promise ? Comment vous feriez pour renseigner les potentielles erreurs au client pour que l'user puisse savoir si son pseudo est pris/invalide etc.. ? (sachant qu'il y a déjà un test regex chez le client mais bon, on ne sait jamais
)