Функция Spawn () не вызывается - PullRequest
0 голосов
/ 11 апреля 2020

В моем файле контроллера я вызываю функцию 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 функции внутри выполненного обещания также никогда не будут вызваны. Буду признателен за любую помощь в этом!

...