【发布时间】:2017-12-17 13:51:20
【问题描述】:
我正在构建一个简单的 Web 应用程序,它将文件作为输入,运行一些命令行操作,然后返回一个新文件(它是一个在线转换器)。整个过程需要 1-2 分钟,因为有 8 或 9 个命令行操作,有些需要比其他更多的时间。
我正在尝试找出一种将转换状态实时发送给客户端的方法。
目前我的代码如下所示:
app.post('/convert/', function(req, res) {
cmd.run(/* operation 1 */);
cmd.run(/* operation 2 */);
...
cmd.run(/* operation 7 */);
cmd.run(/* operation 8 */);
cmd.run(/* operation 9 */);
});
我想知道是否有一种方法可以在一个命令行命令完成执行而无需任何刷新时将某些内容发送回客户端。 最终目标是有一个干净的加载栏。我知道解决方案可能在于 Ajax,但在这一点上,我太初学者了,不知道我应该做什么。
我尝试过类似的东西
res.write('step 1 done');
和
res.send('step 1 done');
但它会停止执行脚本的其余部分并在浏览器中加载另一个页面。我也想知道如何在客户端的浏览器中处理这个响应。
谢谢!
【问题讨论】:
标签: javascript node.js shell command-line