我需要在JS中呼叫JAVA的程式並回報進度
在JAVA裡面有System.out.println
在回報進度%
在console中可以用child.stdout.pipe(process.stdout);
看到進度%數
但我想要把%抓到網頁上做成進度條,想請教方法
const { exec } = require('child_process');
const child = exec("java -jar AntDemo.jar");
child.stdout.pipe(process.stdout);
const child = exec("java -jar AntDemo.jar");
child.stdout.pipe(process.stdout);
child.stdout.on('close',()=>{
fs.readFile("output.txt" , (err,data) =>{
if(err) throw err;
let output = data.toString().split(",");
res.json({
"success" : true,
"message" : "",
"data" : output,
});
});
});
建議一步一步來
先「用 node.js 寫出網頁」
再「用 node.js 寫出網頁的進度條,資料寫死」
再「用 node.js 寫出網頁的進度條,資料由呼叫外部 java 程式取得」
我呼叫外部程式跟顯示處理完的資料都完成了
現在是因為java需要執行一段時間,所以我想做進度條
但目前卡在沒辦法輸出進度,只有在shell上有顯示,想請求指教
參考看看這篇
node.js 把 stdout 當成資料輸入用
可以考慮用socket.io來接即時資訊,簡單一點的話,可以考慮Server-Send Event。