*.ejs 文件中的变量错误
Error for variable in a *.ejs file
我正在按照此处的指南进行操作:https://www.danielgynn.com/build-an-authentication-app-using-express-node-passport/ 并且一切正常,除了当我进入登录屏幕时出现此错误:
..... 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>
<% } %>
问题是我看不出代码有什么问题?注册页面完全相同。如果无论如何登录都是错误的,那应该只显示一条消息。我觉得这是一个标准的代码行,一开始就不应该出错?
如果我注释掉这些行,它就可以正常工作。
相关代码的其他部分:
//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"。但是注册工作正常.. 显示错误很好.. 登录只是从一开始就无法正确显示。
这快把我逼疯了,谢谢任何帮助
你打错了:
res.render('login.ejs', { messag: req.flash('loginMessage') });
messag
应该是 message
:
res.render('login.ejs', { message: req.flash('loginMessage') });
希望对您有所帮助。
我正在按照此处的指南进行操作:https://www.danielgynn.com/build-an-authentication-app-using-express-node-passport/ 并且一切正常,除了当我进入登录屏幕时出现此错误:
..... 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>
<% } %>
问题是我看不出代码有什么问题?注册页面完全相同。如果无论如何登录都是错误的,那应该只显示一条消息。我觉得这是一个标准的代码行,一开始就不应该出错?
如果我注释掉这些行,它就可以正常工作。
相关代码的其他部分:
//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"。但是注册工作正常.. 显示错误很好.. 登录只是从一开始就无法正确显示。
这快把我逼疯了,谢谢任何帮助
你打错了:
res.render('login.ejs', { messag: req.flash('loginMessage') });
messag
应该是 message
:
res.render('login.ejs', { message: req.flash('loginMessage') });
希望对您有所帮助。