NodeJS - comment se débarrasser d'une fonction?
Récemment eu une question similaire, mais ne peut toujours pas obtenir. J'ai pour valider l'enregistrement de la page avant d'ajouter un nouvel utilisateur.
app.post('/signup', function(req, res) {
//checking if first name is filled
if (req.body.first_name = "" || req.body.first_name = null || req.body.first_name = undefined) {
res.render('signup', { "title": "Ttitle", "menu": "signup", user: req.user, "error" : "empty_first_name" });
break;
}
//checking if last name is filled
if (req.body.last_name = "" || req.body.last_name = null || req.body.last_name = undefined) {
res.render('signup', { "title": "Ttitle", "menu": "signup", user: req.user, "error" : "empty_last_name" });
break;
}
//checking if email is filled
if (req.body.email = "" || req.body.email = null || req.body.email = undefined) {
res.render('signup', { "title": "Ttitle", "menu": "signup", user: req.user, "error" : "empty_email" });
break;
}
//checking if passwords match
if (req.body.password != req.body.repassword) {
res.render('signup', { "title": "Ttitle", "menu": "signup", user: req.user, "error" : "pass_missmatch" });
break;
}
...
...
...
//and finally if everything seems to be OK...
addUser(req.body.email, req.body.password, req.body.first_name, req.body.last_name, req.body.country, function(status) {
res.render('signup', { "title": "Ttitle", "menu": "signup", user: req.user, "success" : 1 });
});
});
Node.JS me dit que toutes les pauses sont illegial. Mais comment dois-je pause ma fonction d'une manière appropriée? Elle ne retourne rien. Merci!
OriginalL'auteur f1nn | 2012-09-30
Vous devez vous connecter pour publier un commentaire.
Un
return
déclaration est utilisé pour interrompre une fonction.Vous pouvez fournir une option de valeur de retour, mais dans ce cas, je crois qu'il serait pas pris en compte, vous devez simplement être en mesure de remplacer
break;
avecreturn;
.Note de côté, mais vous avez un bon peu de répétition de code, et vous avez des affectations dans votre
if
conditions. Vous pouvez généralement le facteur de loin la répétition. Aussi, vous pouvez vous débarrasser de lareturn
tout à fait si vous utilisezif/else if/else
consolidés.Voici un exemple.
Juste
return;
devrait faire l'affaire. Il n'y a aucune obligation de fournir une valeur de retour explicite.Il a travaillé, merci!
OriginalL'auteur I Hate Lazy