2017-11-08 6 views
0

EJSExpress.JSを使用して少し複雑なページを作っています。私はそれを少し簡素化されます:Express.JSのフロントエンドリダイレクト

まずアプリケーションの負荷/update簡単な方法と、それをレンダリング:

render機能で

app.get('/update', (req, res) => { 
 
    res.render('update'); 
 
});

updateEJSテンプレートです。あなたがボタンクリック、アプリケーションの負荷特定div/performexpress.jsルート上に見ることができるように

... 
 
<div id="progress"></div> 
 
<button id="perform" type="button" class="btn btn-default">Download & Update</button> 
 
<script> 
 
    $('#perform').click(function() { 
 
    $('#perform').hide(); 
 
    $('#progress').load('/perform'); 
 
    }); 
 
</script> 
 
...

:ここでは、それがどのように見えるかです。ここでは、Node.JS側に何をするかだ:それはres.render()を使用して、いくつかのコンテンツを返した後

app.get('/perform', function(req, res) { 
 
    //Renders div 
 
    res.render('perform') 
 
    
 
    //Does some actions in 1-2 minues. 
 
    
 
    //Here I want it to redirect to/of application. 
 
});

、アプリケーションはいくつかのプロセスをやって起動します。約1分かかり、完了後に/にリダイレクトするアプリケーションが必要です。私はres.redirect('/') e.t.cを使ってみましたが、何も動作しません。たぶん何とかリダイレクトするブラウザに教えてください。

ここで何ができますか?

答えて

1

あなたが唯一

だからあなたがリダイレクトクライアント側を行う必要があります(()「を実行」あなたがres.renderで行う)応答を送信することができますので、AJAXを経由して「実行/」ロード

これをポーリング、タイムアウト、またはそれ以上に行うことができます。アクションが完了したときにsocket.ioを使用してサーバーからクライアントへの信号を与えることができます。

+0

これを行う方法を表示できませんでしたか? –