-1

我有一个使用 Node.js/Express.js/Pug 创建的 webapp,它运行一个 bash 脚本(主要是 Nmap 扫描)并显示结果。我想在开始和结果之间实现某种页面,以表示系统正在处理任务。

我试图在开始扫描的路由的开头添加另一个 res.render(...),但我遇到了 HTTP 无法发送标头两次的问题。实际上,我不能为一个请求发送两个 http 响应;如果我在这里错了,请告诉我。

我对这些东西还不是很熟悉;我正在与一个小组一起工作,这份工作落到了我的肩上,我们将不胜感激。

4

1 回答 1

3

通常,路由处理程序会:

  • 异步触发长时间运行的脚本
  • 返回“进​​行中”页面

然后“进行中”页面将通过以下方式询问服务器是否已完成:

  • 网络套接字
  • Ajax 轮询
  • 元刷新轮询

您需要让对原始异步进程的回调跟踪响应应该到达的位置(可能使用将传递给它并在“进行中”页面中作为数据返回的 GUID)。

于 2021-02-18T15:15:45.810 回答