【发布时间】:2017-03-28 12:04:42
【问题描述】:
我在这里遵循本指南:https://www.danielgynn.com/build-an-authentication-app-using-express-node-passport/,一切正常,除了当我进入登录屏幕时出现此错误:
..... 7| >> 8| 9| 10| 11|消息未定义
完整错误图片:http://imgur.com/a/hlChC
我相信这里指的是 login.ejs 文件中的这行代码:
<% if (message != null) { %>
<div class="alert-danger"><%= message %></div>
<% } %>
问题是我看不出代码有什么问题?注册页面完全相同。如果无论如何登录错误,那应该只显示一条消息。我觉得这是一个标准的代码行,一开始就不应该出错?
如果我将这些行注释掉,它就可以正常工作。
相关代码的其他部分:
//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” .但是注册工作正常.. 显示错误就好了.. 登录从一开始就无法正确显示。
这让我发疯了,谢谢任何帮助
【问题讨论】:
标签: javascript node.js express passport.js ejs