2015-01-03 10 views
0

後:表達重定向頭他們是我使用的快遞送到

// check user session 
var user = req.user; 
if(!user) 
    res.redirect('/login'); 

res.render('report/search'); 

我得到這個錯誤:

Error: Can't set headers after they are sent. 

如何停止後重定向?

+1

res.redirect前添加一個'return'? –

+0

..或使用「if」塊。 – dfsq

回答

0

在expressjs上responose liek redirectrenderjson等任何方法不停止請求處理程序的執行,並執行它,直到結束。你可以有任何代碼,它會工作,但你不能將響應發送給客戶端兩次,這就是爲什麼你得到這個錯誤。

爲了解決它,你需要要麼使用returnif-else條款:

var user = req.user; 
if(!user) 
    return res.redirect('/login'); 

return res.render('report/search'); //this return is not required, but it's still good to have it there 

或者:

var user = req.user; 
if(!user) { 
    res.redirect('/login'); 
} 
else { 
    res.render('report/search'); 
} 
相關問題