2017-08-08 31 views
0

我正在研究node.js和express.js應用程序。在使用快遞呈現node.js中的先前視圖後呈現另一個視圖

我已經路由器配置爲:

var express = require('express'); 
var router = express.Router(); 

router.get('/', function(req, res, next) { 

    // on load 

    res.render('mail', { title: "this is the title." }); 

    // after some more funcitonality redirect/render a new view 

If(condition == 'success'){ 

    res.render('sent', { title: "this is the title." }); 

    // or 

    res.redirect('/sent'); 

    } 


}); 

現在的問題是,當我渲染渲染首次觀看後根據條件的新觀點,或者如果我重定向到一個新的路線呈現的第一個視圖後,我得到

Headers cannot be set after they have been sent error 

執行雖然繼續,但未加載視圖,頁面未重定向。

任何幫助克服這個問題將不勝感激。

+0

你已經發送了一個視圖(頁面)後不能重定向 – jye265

+0

你在這裏做什麼?顯示郵件頁面,然後在發送郵件後將其更改爲「已發送」頁面? – jye265

回答

1

您無法發送第二個響應。

或者你渲染一個視圖或重定向到另一個路由,而不是兩個。

請查閱express獲取相關文件。

+0

非常不合邏輯的我。我已經通過ajax調用它來執行函數並返回到相同的視圖,而不是重定向。 – echology