【发布时间】:2019-04-22 09:34:24
【问题描述】:
我对 node.js 很陌生。目前,当我评估http://localhost:4000/testjar 时,我运行一个子进程来执行 jar 文件。加载页面并在子进程完成运行后显示标准输出需要一些时间。
有没有办法在等待子进程运行时先完成页面的加载,然后在子进程完成运行后将响应发送给客户端。因为我不希望页面加载这么久。
现在流程是
browser loading -> start child process -> wait child process
-> child process finish ->server send response -> browser finish loading
有没有类似
browser loading -> start child process -> browser finish loading and display pending for output
-> wait child process -> child process finish ->server send response
这是我的 testjar.js
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
var exec = require('child_process').exec, child;
child = exec('java -jar /home/java/testinput.jar',
function (error, stdout, stderr){
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
res.send(stdout);
if(error !== null){
console.log('exec error: ' + error);
}
});
});
module.exports = router;
【问题讨论】:
标签: javascript node.js express server child-process