0

我在一个项目中使用 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()。有谁知道我该怎么做?

4

1 回答 1

0

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存在(它是一个数组)并呈现消息。

于 2013-05-09T18:30:28.073 回答