Node JS - Não encontro os erros
Boa Tarde Pessoal.
Tenho dois (2) códigos (arquivos) em JS (node js):
O Primeiro (software.js) é a função que obtém informações de softwares instalados no sistema operacional:
E o segundo código é o arquivo (main.js) onde chamo a função getinfo do software.js:
Gostaria de saber se poderiam me ajudar com os seguintes erros que não consigo encontrar a causa de forma alguma.
-> O primeiro erro é que quando chamo no terminal o software.js para testá-lo individualmente, este só me retorna uma linha com apenas um software, sendo que deveria retornar várias linhas com todos os softwares, formatado com as tags.
-> O segundo erro é que quando a função software.getInfo() é chamada no arquivo main.js esta me retorna 'undefinide'.
Pessoal, se puderem me ajudar fico muito grato, pois não consigo encontrar onde estão os erros no código.
Tenho dois (2) códigos (arquivos) em JS (node js):
O Primeiro (software.js) é a função que obtém informações de softwares instalados no sistema operacional:
/* *********************************************** */ /* MÓDULO LEITURA DE SOFTWARE */ /* VERSÃO: 1.0 - DATA: 27/05/2022 */ /* *********************************************** */ const exec = require('child_process').exec; var xml = ""; (getInfo = async () => { xml += "<softwares>"; exec("wmic product get name, version, installdate /format:csv", (error, stdout, stderr) =>{ if (error) { console.error("error: ", error.message); return; } if (stderr) { console.error("stderr: ",stderr); return; } //console.log('stdout: ', stdout); linhas = stdout.split(/\r?\n/); countLines = 0; //console.log(linhas); linhas.forEach(function (linha){ if((countLines >= 3) && (countLines <= (linhas.length - 2))){//Desconsidera 1 e 2 linha e ultima //console.log(countLines); console.log(linha); linha = linha.split(','); var data = new String(linha[1]); var nome = new String(linha[2]); var versao = new String(linha[3]); try{ var dia = data.substr(6,2); var mes = data.substr(4,2); var ano = data.substr(0,4); }catch(err){ console.log("Linha Num.:" + countLines); console.log("Error Name: " + err.name); console.log("Error Message: " + err.message); } xml += "<software>"; xml += "<name>" + nome.toString() + "</name>"; xml += "<version>" + versao.toString() + "</version>"; xml += "<date>" + dia + '/' + mes + '/' + ano + "</date>"; xml += "</software>"; // console.log(countLines); //console.log(linha[1] + "--" + linha[2] + "--" + linha[3]); } countLines = countLines + 1; });//fim forEach xml += "</softwares>"; console.log(xml); //return xml; });//Fim Exec })();//Fim getInfoSoftwares module.exports = { getInfo };
E o segundo código é o arquivo (main.js) onde chamo a função getinfo do software.js:
/* *********************************************** */ /* MÓDULO PRINCIPAL - MAIN */ /* VERSÃO: 1.0 - DATA: 18/06/2022 */ /* *********************************************** */ const PATH = "./"; const FILE_NAME = "inventory.xml"; const HEADER_XML = "<?xml version='1.0' encoding='UTF-8'?>"; (main = async () => { //const identifier = require('./identifier'); //const hardware = require('./hardware'); const software = require('./software'); const file = require('./file'); //let infoIdentifier = new String(await identifier.getInfo()); //let infoHardware = new String(await hardware.getInfo()); let infoSoftware = new String(await software.getInfo()); //console.log(infoIdentifier); //console.log(infoHardware); console.log(infoSoftware); if(infoSoftware.length > 0 ){ console.log('Informações obtidas com sucesso'); let xml = HEADER_XML; xml += "<inventory>"; //xml += infoIdentifier.toString(); //xml += infoHardware.toString(); xml += infoSoftware.toString(); xml += "</inventory>"; if(file.writeFile(xml, FILE_NAME, PATH)) //Grava em arquivo usando o modulo fs no arquivo file.js console.log('Arquivo gravado com sucesso!'); else console.log('Erro na gravação do arquivo!'); } else{ console.log('Erro em obter informações!'); } })();
Gostaria de saber se poderiam me ajudar com os seguintes erros que não consigo encontrar a causa de forma alguma.
-> O primeiro erro é que quando chamo no terminal o software.js para testá-lo individualmente, este só me retorna uma linha com apenas um software, sendo que deveria retornar várias linhas com todos os softwares, formatado com as tags.
-> O segundo erro é que quando a função software.getInfo() é chamada no arquivo main.js esta me retorna 'undefinide'.
Pessoal, se puderem me ajudar fico muito grato, pois não consigo encontrar onde estão os erros no código.
Gabriel Sari
Curtidas 0