2017-03-02 59 views
-1

I'ld喜歡用下面的代碼來發送兩個連續EJS頁面到客戶端:的Node.js - 表達 - 呈現多個視圖

app.post('/', function(req,res) { 
    res.render('yourDemandIsBeingProceed.ejs'); 
    //some code which require time (open an external programm, run a script, edit a response) 
    res.render('hereIsYourResult.ejs'); 
    res.end(); 
}); 

所以,一旦一旦客戶發佈自己的狀態,他收到一個頁面要求他等待幾秒鐘,然後發送包含響應的頁面。

有什麼建議嗎?

許多THX

+0

我忘了沒有提到,我想避免使用socket.io – Guigui

+0

這不是http的工作方式。一旦執行'res.render',連接就會關閉,您無法再向客戶端發送更多數據。 – Amberlamps

+0

如果你使用帕格,看看我的[回覆](https://stackoverflow.com/a/46644185/2368696) –

回答

0

你可以做的是有客戶端代碼中yourDemandIsBeingProceed.ejs時執行GET/POST請求到不同的端點頁面加載。當接收到來自這個結果,隱藏/顯示不同的元素裏面yourDemandIsBeingProceed.ejs所以它看起來更像hereIsYourResult.ejs

0

你真正應該做的是讓用戶通過前端AJAX提交信息,並提出了一個裝載圖形,直到JSON響應回來。 AJAX是針對這種情況開發的。