Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Executar programa externo no projeto Node com Angular

Bom dia, estou trabalhando em um projeto Node com Angular e estou com uma dificuldade, preciso executar um programa externo (.jar) que me retorna uma mensagem e tratar essa mensagem. Qual a melhor maneira de executar esse programa para tratar o retorno?

2 respostas

Boa noite, Marcelo! Como vai?

Como está a situação atual do seu código e quais são os problemas práticos e concretos que vc está enfrentando? Com essas informações eu poderei te ajudar de forma mais efetiva!

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

solução!
  private executaJar( cmd, idChave ): void {
    let chave = new Chave();
    var exec = require('child_process').exec, child;
    child = exec(cmd,
      function (error, stdout, stderr){
        console.log('stdout: ' + stdout);
        console.log('stderr: ' + stderr);
        if(error !== null){
          console.log('exec error: ' + error);
        }
        let chaveService = new ChaveService;
        chave = new Chave();
        chave.idChave = idChave;
        chave.situacaoChave = stdout === null ? '1' : '2';
        chave.descricaoErro = stdout;
        chaveService.update( chave );
    });
  }

Boa tarde Gabriel, meu problema é que não estava conseguindo pegar a mensagem de erro do .jar para gravar no banco, mas consegui da forma no código acima. Sabe me explicar porque não consigo retornar o erro do método abaixo?

  private executaJar( comando ): any {
    var exec = require('child_process').exec, child;
    child = exec(comando ,
      function (error, stdout, stderr){
        console.log('stdout: ' + stdout);
        console.log('stderr: ' + stderr);
        return stdout;
        if(error !== null){
          console.log('exec error: ' + error);
     return error ;
        }
    });
  }