2
respostas

Não aparece erro no console e o arquivo não é gerado

Pessoal, o código não funcionou e não foi apresentado erro. Podem ajudar ?

Código da cli.js

const fs = require('fs');
const trataErros = require('./erros/funcoesErro');

const caminhoArquivo = process.argv;
const link = caminhoArquivo[2];
const endereco = caminhoArquivo[3];

fs.readFile(link, 'utf-8', (erro, texto) => {
try {
if (erro) throw erro
const resultado = contaPalavras(texto);
criaESalvaArquivo(resultado, endereco);
} catch(erro) {
trataErros(erro);
}
})

async function criaESalvaArquivo(listaPalavras, endereco){
const arquivoNovo = ${endereco}\\resultado.txt;
const textoPalavaras = JSON.stringify(listaPalavras);
try {
await fs.promises.writeFile(arquivoNovo, textoPalavaras);
console.log('Arquivo criado');
} catch (erro) {
throw erro;
}
}

2 respostas

Pelo trecho que você enviou, o principal problema parece estar nesta linha:

const arquivoNovo = ${endereco}\\resultado.txt;

Ela precisa usar crases para interpolar a variável, por exemplo:

const arquivoNovo = `${endereco}/resultado.txt`;

ou

const arquivoNovo = `${endereco}\\resultado.txt`;

Também vale conferir se a função contaPalavras() foi importada corretamente e se o endereco está sendo passado certo no terminal. Eu testaria com um console.log(link, endereco) para validar isso.

Leandro, obrigado pela disponibilidade em ajudar.
Fiz a alteração e ainda assim nada mudou.

const fs = require('fs');
const trataErros = require('./erros/funcoesErro');

const caminhoArquivo = process.argv;
const link = caminhoArquivo[2];
const endereco = caminhoArquivo[3];

fs.readFile(link, 'utf-8', (erro, texto) => {
try {
if (erro) throw erro
const resultado = contaPalavras(texto);
criaESalvaArquivo(resultado, endereco);
} catch(erro) {
trataErros(erro);
}
})

async function criaESalvaArquivo(listaPalavras, endereco){
const arquivoNovo = ${endereco}\\resultado.txt;
const textoPalavaras = JSON.stringify(listaPalavras);
console.log(link, endereco);
try {
await fs.promises.writeFile(arquivoNovo, textoPalavaras);
console.log('Arquivo criado');
} catch (erro) {
throw erro;
}
}


Comando executado no log: node src/cli.js arquivos/texto-web.txt ./resultados/
comando enviado no console