Выполнение функции в конце процесса - PullRequest
0 голосов
/ 02 марта 2020

function   initNpm (){
          //services()
          const spawn_option ={ cwd:'./'+projet ,detached:true}
          var child = exec('npm init' , spawn_option,function (err, stdout, stderr){
              if(err){console.log(err)}
              //console.log('over');
          });
          child.stdout.on('data', function(data) {
              process.stdout.write(data);
              process.stdin.resume();
          });
          process.stdin.on('readable', function() {
              var chunk = process.stdin.read();
              if(chunk !== null) {
                  child.stdin.write(chunk);
              }
          });
          
          exec( 'npm install express mongoose nodemon',      spawn_option,function (err, stdout, stderr){
            if(err){console.log(err)}
          });
          
      }


function services(callback){
        for(let i = 0; i < name.fonctionnalites.length; i++) {
          if (name.fonctionnalites[i] == 'Authentification') {
            console.log("Yesss authentication");
            const security = async () => {
            const auth = await inquirer.authentification();
            console.log(auth)
            //const auth=authh.answers;
            //const auth = await authh.authentification();
            //console.log(auth.prompts)
            //let parser = JSON.stringify(auth);
            let donnees =       auth.name+":{"+'\n'+
                                  "type:  "+auth.type+","+'\n'+
                                  "required: "+auth.required+","+'\n'+
                                  "unique: "+auth.unique+'\n'+
                                "}"     
            authDatabase="DATABASE_URLAUTH=mongodb://localhost/users";   
            fs.writeFile('./'+projet+'/models/authentification.js',donnees , function(err) {
              if(err) return console.error(err);
            });
            fs.appendFile('./'+projet+'/.env', authDatabase, function (err) {
              if (err) throw err;
            });
            /*do
              {
                const securityRepeated = async () => {
                const authRepeated = await inquirer.authentification();
                console.log(auth);
                let donneesRepeated =","+
                                      authRepeated.name+":{"+'\n'+
                                      "type:  "+authRepeated.type+","+'\n'+
                                      "required: "+authRepeated.required+","+'\n'+
                                      "unique: "+authRepeated.unique+'\n'+
                                      "}"
                fs.appendFile('./'+projet+'/models/authentification.js', donneesRepeated, function (err) {
                  if (err) throw err;
                });
                }
                securityRepeated()
              }
            while(auth.addAttribute==true);*/
            /*exec('svn checkout https://github.com/morseck00/PROTO_BOX/trunk/AuthentificationJWT', {cwd: './'+projet+'/routes'}, function(err, stdout, stderr) {
              if (err) {
                console.log(`error: ${err.message}`);
                return;
            }
            if (stderr) {
                console.log(`stderr: ${stderr}`);
                return;
            }
            console.log(`stdout: ${stdout}`);
            });*/
            }
            security()
            
          }
callback();
}

Я работаю в проекте, где я создаю CLI, и из ответов я выполняю некоторые вещи, такие как автоматическое создание npm в моем коде. я помещаю exe c с npm init в функцию, но когда я вызываю функцию, выполнение всех остальных функций останавливается! можешь помочь мне, пожалуйста? Я попытался поместить функцию, где я выполняю npm init в обратном вызове в другой функции, но происходит то же самое !!! и я новичок NODE JS SOOOO ... LOL

1 Ответ

0 голосов
/ 02 марта 2020

Я думаю, что я решил это! Я добавил функцию init Npm в качестве функции обратного вызова в функцию services и добавил «-y» в команду «npm init», чтобы она не появлялась в консоли! ТКС

...