В моем файле контроллера я вызываю функцию spawn () для вызова другого javascript файла в root моего каталога, но он никогда не выполняется. Основываясь на моем понимании того, как асинхронный код работает в javascript (что может или не может быть правильным), мой код будет выполнять мою функцию spawn после выполнения всего остального в моем коде. Ниже приведен код контроллера:
const { runPyScript } = require("../services/runPyScript.service");
const { spawn } = require("child_process");
const util = require('util');
const exec = util.promisify(require('child_process').exec);
const pyScript = async (req, res, next) => {
try {
const dbUserVal = res.locals.dbUserVal;
console.log("You're about to send data to python script.")
await runPyScript(res.locals.dbUserVal, res.locals.dataArray)
console.log("right before tryme.js");
//the code below never gets called :(
const ls = spawn("node", ["tryme.js", `${dbUserVal}`])
ls.on("close", (code) => {
console.log("You're done with the .csv file!");
console.log(`child process exited with code ${code}`);
//get users name, first and last
let users_fullName = get_username(dbUserVal);
users_fullName.then(function(value){
fill_Form(value)
});
let userEmail = get_usersEmail(dbUserVal);
userEmail.then(function(val){
send_email(val)
});
let last_users_fullName = get_username(dbUserVal);
last_users_fullName.then(function(v){
delete_files(v)
});
});
} catch (error) {
console.log(error);
}
//next();
};
module.exports = {
pyScript
};
Поскольку моя функция spawn никогда не вызывается, мои другие асин c функции внутри выполненного обещания также никогда не будут вызваны. Буду признателен за любую помощь в этом!