ExpressJS GETredirect

我在我的Node应用程序上实现了一些小的aunthentication路由,就像这样简单:

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

如果我用正确的凭据login,它的工作是完美的,如果我失败了,它应该通过redirect到/admin的GET请求。 但是我得到: undefined. Redirecting to //127.0.0.1:3000/admin undefined. Redirecting to //127.0.0.1:3000/admin

这使得我res.redirect正在发出一个GET请求/admin GET /admin res.redirect

我能做什么? 我如何指定res.redirectredirect正确的方式?

它看起来对我来说,你可以尝试这样做,以排除错误:错误的问题:

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

我的经验。 如果你总是得到

未定义。 redirect到

更换

 res.redirect('/admin', { error: true }); 

 res.redirect('/admin'); 

如果没有错误,继续尝试你想要做的事情。