I have 2 query , first query collect data from my job table and second query collect data from my vehicle table then both data are stored in results array. How to pass this results array into my child process as argument for jar execution? And is there any size limitation for arguments in jar execution because there is a lot of data in my job table and vehicle table. If there is size limitation for argument, what is the best way to run a jar file with large argument size?
var express = require('express');
var router = express.Router();
router.post('/', async function(req, res, next) {
var date = req.param('date');
var joblist;
var vehiclelist;
var promises = [];
promises.push(query1(date));
promises.push(query2());
var results = await Promise.all(promises);
console.log(results[0]); // query1
console.log(results[1]); // query2
function query1(date) {
return new Promise((resolve, reject) => {
res.locals.connection.query('SELECT * FROM job WHERE date = ?',[date] , function (error, results, fields) {
if (error) {
reject(error);
} else {
resolve(results);
}
});
});
}
function query2() {
return new Promise((resolve, reject) => {
res.locals.connection.query('SELECT * FROM vehicle' , function (error, results, fields) {
if (error) {
reject(error);
} else {
resolve(results);
}
});
});
}
var exec = require('child_process').exec, child;
child = exec('java -jar /home/java/testsize.jar',
function (error, stdout, stderr){
console.log('stdout: ' + JSON.stringify(stdout));
//console.log('stderr: ' + stderr);
res.send(joblist+" "+stderr);
if(error !== null){
console.log('exec error: ' + error);
}
});
});
module.exports = router;