Создание процесса, а также чтение файла в NodeJS выполняется асинхронно, поэтому. Если вы хотите получить результат с непротиворечивостью, вам нужно использовать обратные вызовы. Когда вы охватываете процесс, вы можете получать данные из этого процесса в режиме реального времени с помощью
process.stdout.on("data", data => {
//do whatever you want with data here
})
Если процесс python дает вам файл json, и вам нужно прочитать этот файл, вы должны прочитать его при выходе код 0, который Python процесс отправляет после завершения выполнения
process.stderr.on('exit', function(code) {
if(code ===0){
fs.readFile('c.json', 'utf8', function (err, data) {
if (err) throw err;
res.send(data);
})
}
})
Окончательный код должен быть таким:
app.get('/get_temp_hum', function(req, res) {
var process = spawn('python',["ECIES_decotp.py"]);
process.stdout.on('data', function(data) {
// do whatever you want here with stream data from python process
console.log(data.toString());
} )
process.stderr.on('data', function(data) {
console.log(data.toString());
} )
process.stderr.on('exit', function(code) {
if(code === 0){
fs.readFile('c.json', 'utf8', function (err, data) {
if (err) throw err;
res.send(data);
})
}
} )
});