Express.JS中的前端重定向

时间:2017-11-08 11:30:41

标签: javascript jquery node.js redirect

我使用EJSExpress.JS创建了一个复杂的页面。我会简化一下:

第一个应用程序以简单的方式加载/update并呈现它:



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




update函数中的

renderEJS模板。这是它的样子:



...
<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>
...
&#13;
&#13;
&#13;

正如您在点击按钮时看到的那样,应用程序会将/perform express.js路由加载到特定的div。这是Node.JS方面的作用:

&#13;
&#13;
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.
});
&#13;
&#13;
&#13;

使用res.render()返回一些内容后,应用程序开始执行某些过程。他们需要大约1分钟,完成后我希望应用程序重定向到/。我尝试使用res.redirect('/') e.t.c.但没有任何作用。也许它会以某种方式告诉浏览器重定向..

我可以在这做什么?

1 个答案:

答案 0 :(得分:1)

你通过ajax加载“/ perform”,所以你只能发送一个响应(你使用res.render('perform'))

所以你应该重定向客户端

您可以通过轮询,超时甚至更好的方式执行此操作,您可以使用socket.io在操作完成后从服务器向客户端发出信号。