在ExpressJS响应中发送JQuery Mobile错误消息

时间:2012-04-22 19:59:46

标签: node.js jquery-mobile express

我想在凭据错误的情况下为用户显示错误消息。我怎么能在Express JS中这样做?我尝试了以下代码,但它不起作用:

app.get('/', function(req, res, next) {
        passport.authenticate('local', function(err, user, info) {
        if (err) { return next(err) }
        if (!user) { return res.send($( "<div class='ui-loader ui-overlay-shadow ui-body-e ui-corner-all'><h1>YOUR MESSAGE</h1></div>" )
        .css({ "display": "block", "opacity": 0.96, "top": $(window).scrollTop() + 100 })
        .appendTo( $.mobile.pageContainer )
        .delay( 800 )
        .fadeOut( 400, function() {
        $( this ).remove();
        })
        );  }
        req.logIn(user, function(err) {
        if (err) { return next(err); }
        return res.redirect('/account');
        });
        })(req, res, next);
    });

这有什么问题?

谢谢,

1 个答案:

答案 0 :(得分:0)

错误消息是否来自策略的验证回调?像这样:

// verify callback
return done(null, false, { message: 'Invalid password' });

如果是这种情况,它将最终作为上述代码段的info参数:

passport.authenticate('local', function(err, user, info) {
  // arguments to this callback are what was given to done()
  // info.message => 'Invalid password'

  var msg = "<h1>" + info.message + "<h1>"
  res.send(msg)
}