2012-11-06 62 views
2

我執行我的節點的應用程序有點aunthentication路線,像這樣簡單:ExpressJS GET重定向

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重定向正確的方式?

回答

2

它看起來不錯我說,你可以嘗試做只是這排除錯誤:錯誤是問題:

res.redirect('/admin'); 

如果你想換一個消息,我會用連接閃:

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

我的經驗。如果你總是

undefined. Redirecting to

更換

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

res.redirect('/admin'); 

如果沒有錯誤,繼續努力,你想要做什麼。