PassportJS NodeJS Показать сообщения об ошибках на странице
Я использую Locomotivejs и passportJS для аутентификации в проекте, и я нашел в Интернете некоторый код для обработки регистра:
AccountController.create = function() {
var account = new Account();
console.log("test");
account.email = this.param('email');
account.password = this.param('password');
account.name.first = this.param('first');
account.name.last = this.param('name.last');
var self = this;
account.save(function (err) {
if (err) {
console.log(err);
return self.redirect(self.urlFor({ action: 'new' }));
}
return self.redirect(self.urlFor({ action: 'login' }));
});
};
Однако я не могу понять, как отображать сообщения об ошибках на странице, такие как "Имя пользователя уже существует" или "Пароли не совпадают" и т. Д. Я могу получить их только в console.log(). Кто-нибудь знает, как я могу это сделать?
1 ответ
connect-flash довольно полезен для таких ситуаций:
// in your app's config:
var flash = require('connect-flash');
...
app.use(flash());
...
// in your #create controller:
if (err) {
req.flash('error', 'YOUR ERROR MESSAGE HERE');
return self.redirect(self.urlFor({ action: 'new' }));
}
// in your #new controller:
res.render('TEMPLATE', { errors: req.flash('error') });
И в ваших шаблонах, проверьте, если errors
существует (это массив) и отображать сообщения.