我正在我的Node应用程序上实现一些小的身份验证路由,就像这样简单:
app.get('/admin', function(req, res) {
res.render('login', { error: false });
});
app.post('/admin', function(req, res) {
if((adminAccount.username === req.body.username) &&
(adminAccount.password === req.body.password)) {
res.redirect('/admin/books');
}
else {
res.redirect('/admin', { error: true });
}
});
如果我使用正确的凭据登录,它可以完美无缺,如果我失败了,它应该通过重定向向/admin
发出GET请求。
但是我得到:undefined. Redirecting to //127.0.0.1:3000/admin
这使我res.redirect
正在向POST
/admin
个GET
个res.redirect
请求{{1}}。
我该怎么办?如何指定{{1}}以正确的方式重定向?
答案 0 :(得分:2)
对我来说没问题,你能尝试这样做以排除错误:错误是问题所在:
res.redirect('/admin');
如果你想要点击消息,我会使用connect-flash:
app.js:
var flash = require('connect-flash');
app.use(flash());
路线:
req.flash('error', 'Woops, looks like that username and password are incorrect.');
res.redirect('/login');
中间件:
res.locals.message = req.flash();
视图:
<% if ( message.error ) { %>
<div class="message error"><%= message.error %></div>
<% } %>
答案 1 :(得分:0)
我的经历。如果你总是得到
未定义。重定向到
替换
res.redirect('/admin', { error: true });
到
res.redirect('/admin');
如果没有错误,请继续尝试您想要做的事情。