大多数服务器端脚本语言都有一个 exec 函数(node、php、ruby 等)。这允许编程语言与外壳交互。
我希望exec()
在 node.js 中使用来运行大型进程,我曾经在浏览器中处理 AJAX 请求。我想要一个简单的进度/加载栏来向用户显示进度。
我在下面的示例中发现了一个困难的方法,即exec
函数的回调/异步性质将使这个示例需要超过 5 秒的时间才能加载。
我想要的是某种方法来更新浏览器的内容(ajax),并使用当前的执行状态,如加载栏。但我不希望运行文件依赖于浏览器。
任何的想法?
我的路线
exports.exec = function(req,res){
// http://nodejs.org/api.html#_child_processes
var sys = require('sys')
var exec = require('child_process').exec;
var child;
child = exec("node exec/test.js", function (error, stdout, stderr) {
var o = {
"error":error,
"stdout":stdout,
"stderr":stderr,
};
o = JSON.stringify(o);
res.send(o);
});
};
我的 test.js 文件
var sys = require('sys');
var count = 0;
var interval = setInterval(
function(){
sys.print('hello'+count);
count++
if(count == 5){
clearInterval(interval);
}
},
1000);