夥計!Express.js res.render()和res.redirect()
我是Express和Node的新手,我的背景大多是前端,所以這可能是一個困惑的問題。請裸跟我:)
我有我的快遞應用程序,這是應該做的路線如下:
- 從外部(OK)獲取一些數據
- 顯示一個HTML與socket.io監聽消息(OK)
- 執行一些計算,這需要很長的時間
- 發送消息槽socket.io每一個一個完成(OK)
- 當所有的計算都完成後頁面,顯示結果LT頁(問題)
所以,我的代碼的簡化版本是:
module.exports = function(io) { // This is so I can use socket.io inside the route
var express = require('express');
var router = express.Router();
[... and other required]
router.post('/', function(req, res, next) {
res.render('loading'); // This renders the template which holds accepts and renders socket.io messages
pefromCalculaton();
sendSocketIOMessage();
session.data = resultData; // I get the result of all calculations and put that in the session. It's a quick fix, don't judge, I've got no presistancy in my project as for now...
res.redirect('results'); // And here I'd like to go to the other route, which will display the data, getting it from the session.
});
return router;
}
由於這是不行的,我可能想在這裏做一些非常愚蠢的。但是其實我想要做的是:
- 執行計算
- 當進行計算,使用套接字
- 更新進度。當計算完成後,呈現模板,顯示所有的結果。
就是這樣!
我有人有一個更好的(和工作)的解決方案!
乾杯, Hristo。
您好,先生,是我的英雄!非常感謝你做的這些! – bitstream
非常歡迎我的朋友。保持良好的工作,真棒! –
雖然有一個問題。當我設置會話變量(session [tadkId])後,當我沒有執行res.send()或類似的事情時,它似乎不是持久的,我不能進入另一邊。否則,它都在工作。我看到其他人有同樣的問題在這裏:http://stackoverflow.com/questions/13426800/express-session-nisting-persisting – bitstream