2012-12-10 53 views
11

我遇到了一些麻煩破譯Express中res.render()和res.redirect()的正確用法是什麼?

res.render('viewname', {msg: 'Message' }) 

res.redirect('route') 

之間的模糊性的重定向功能不會讓你通過一個「消息」,但你可能還是要和渲染函數將呈現您的視圖,但它不會更改您的Web應用程序的URL,並且不會觸發您的路線所需的功能。

我遇到的情況是我有一個Invite表單,它有一個更改我的URL的動作,並在該路由上觸發了一個具有成功和失敗回調的函數,並且我想將用戶重定向到帶有指示成功或失敗消息的儀表板。

+2

重定向從你所描述的,你應該有一個POST和一個GET定義。在POST請求中,您希望重定向到您的GET並在您要呈現的GET中。 – c0deNinja

回答

18

看看connect-flash使用導軌式消息閃爍。

res.render()將渲染傳遞給它的數據來看,res.redirect()將用戶到另一個頁面(此時請求重新開始)

+1

真棒 - 謝謝。這不是第一次從快速刪除的東西是真棒 - 不知道爲什麼他們繼續採取的東西,如閃存MEM和EJS局部 – netpoetica

+1

我認爲如果另一個庫提供功能,他們將其刪除。我主要同意這種邏輯,除非當他們移除你所依賴的東西時,它會令人沮喪。我使用ejs-locals來獲取佈局/塊/部分。 – chovy

+1

如果我想同時重定向和發送數據呢? – stylishCoder

相關問題