Został utworzony formularz rejestracyjny korzystając mangusty i wyrazić 3jak odzyskać z duplikatu klucza w mangusta + wyrazić
Jego możliwe użytkownik już istnieje z tą nazwą użytkownika, w tym przypadku pojawia się err.code 11000 (duplikat klucza). Jak powinienem obsłużyć obecnych użytkowników?
To, co robię teraz .... ale nie jestem pewien, sprawdzając kod błędu jest najlepszym sposobem:
user.save(function(err){
if (err) {
console.log(err);
console.log(err.code);
//duplicate key
if (err.code == 11000) {
req.flash('error', 'User already exists');
res.redirect('/signup');
return;
}
}
res.locals.user = user;
req.session.user = user;
//res.locals.session = req.session;
res.redirect('/');
});
Czy istnieje lepszy sposób to zrobić?
Wygląda całkiem czyste. Co w szczególności nie wydaje ci się do tego słuszne? – JohnnyHK
Tylko to, że pozwoliłem db zwiastować błąd, zamiast być może najpierw sprawdzając użytkownika. – chovy
To zależy od tego, co mogłoby uczynić inne rozwiązanie "lepszym rozwiązaniem" w twojej sytuacji. Nie próbujesz być trudny, ale jeśli jest to funkcjonalnie poprawne, a jego skuteczność jest odpowiednia i możliwa do utrzymania ...? – JohnnyHK