2016-11-14 84 views
0

我在這裏按照本指南:https://www.danielgynn.com/build-an-authentication-app-using-express-node-passport/,一切工作正常,除了當我去到登錄界面我得到這個錯誤:全誤差在* .ejs文件變量

..... 7| >> 8| <% if (message != null) { %> 9| <%= message %> 10| <% } %> 11| message is not defined

圖片錯誤:http://imgur.com/a/hlChC

我相信這是指在login.ejs這行代碼文件的位置:

<% if (message != null) { %> 
    <div class="alert-danger"><%= message %></div> 
<% } %> 

的事情是我沒有看到有什麼proble米與代碼?註冊頁面完全相同。如果登錄錯誤,它應該只顯示一條消息。我覺得這就是這樣一個標準的代碼行,不應該首先出錯。

如果我評論這些線條,它工作正常。

的相關代碼一些其他部分:

//index.js (router) 
router.get('/login', function(req, res, next) { 
    res.render('login.ejs', { messag: req.flash('loginMessage') }); 
}); 

router.get('/logout', function(req, res) { 
    req.logout(); 
    res.redirect('/'); 
}); 

router.post('/signup', passport.authenticate('local-signup', { 
    successRedirect: '/profile', 
    failureRedirect: '/signup', 
    failureFlash: true, 
})); 

router.post('/login', passport.authenticate('local-login', { 
    successRedirect: '/profile', 
    failureRedirect: '/login', 
    failureFlash: true, 
})); 

,最後我passport.js文件位置:http://pastebin.com/swXJMPzi

似乎關閉的唯一的事情是,在我的passport.js文件,是REQ我的註冊頁面的.flash消息是「signupMessage」,但是在我的index.js中,變量是登錄和註冊的「loginMessage」。但註冊工作正常..顯示錯誤絕對罰款..登錄只是不會正確顯示從開始。

這是推動我堅果笑任何幫助表示讚賞

回答

2

你有一個錯字:

res.render('login.ejs', { messag: req.flash('loginMessage') });

messag應該message

res.render('login.ejs', { message: req.flash('loginMessage') });

希望它能幫助。