2012-04-22 54 views
0

我想在出現錯誤憑據的情況下爲用戶顯示錯誤消息。我怎麼能在Express JS中做到這一點?我嘗試了下面的代碼,但它不起作用:在ExpressJS響應中發送JQuery Mobile錯誤消息

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); 
    }); 

這是什麼問題?

謝謝,

+0

這是什麼呢? – Mustafa 2012-04-22 20:51:15

+0

身份驗證。查看並導航到自定義回調部分http://passportjs.org/guide/authenticate.html – 2012-04-23 03:10:38

+0

不,我的意思是這段代碼做了什麼,有什麼不起作用? – Mustafa 2012-04-23 07:45:32

回答

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) 
}