【问题标题】:node.js - express - render multiple viewsnode.js - express - 渲染多个视图
【发布时间】:2025-12-19 19:45:17
【问题描述】:

我想使用以下代码向客户端发送两个连续的 ejs 页面:

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();
});

因此,一旦客户发布了他的表单,他就会收到一个页面,要求他等待几秒钟,然后发送包含响应的页面。

有什么建议吗?

多谢

【问题讨论】:

  • 我忘了提我不想使用 socket.io
  • 这不是 http 的工作方式。一旦你执行res.render,连接就会关闭,你不能再向客户端发送任何数据。
  • 如果你用哈巴狗,看看我的answer

标签: node.js express


【解决方案1】:

您可以做的是在页面加载时在yourDemandIsBeingProceed.ejs 中添加客户端代码,以执行对不同端点的获取/发布请求。收到结果后,隐藏/显示yourDemandIsBeingProceed.ejs 中的不同元素,使其看起来更像hereIsYourResult.ejs

【讨论】:

    【解决方案2】:

    您真正应该做的是让用户通过前端 AJAX 提交信息并放置加载图形,直到 JSON 响应返回。 AJAX 就是为这种情况而开发的。

    【讨论】: