Celio, olhando o seu trecho, existem alguns pontos que podem estar impedindo o funcionamento:
A linha do caminho do arquivo está incorreta.
Você escreveu:
const arquivoNovo = ${endereco}\\resultado.txt;
O correto é usar crases:
const arquivoNovo = `${endereco}/resultado.txt`;
A função contaPalavras() não aparece importada no código enviado. Se ela estiver em outro arquivo, precisa fazer o require.
Como criaESalvaArquivo() é assíncrona, o ideal é chamar com await, senão um erro no writeFile pode não cair no try/catch como esperado.
A pasta ./resultados/ precisa existir. Se ela não existir, o arquivo não será criado.
Uma versão mais segura seria:
const fs = require('fs');
const path = require('path');
const trataErros = require('./erros/funcoesErro');
const contaPalavras = require('./contaPalavras'); // ajustar caminho
const caminhoArquivo = process.argv;
const link = caminhoArquivo[2];
const endereco = caminhoArquivo[3];
fs.readFile(link, 'utf-8', async (erro, texto) => {
try {
if (erro) throw erro;
const resultado = contaPalavras(texto);
await criaESalvaArquivo(resultado, endereco);
} catch (erro) {
trataErros(erro);
}
});
async function criaESalvaArquivo(listaPalavras, endereco) {
await fs.promises.mkdir(endereco, { recursive: true });
const arquivoNovo = path.join(endereco, 'resultado.txt');
const textoPalavras = JSON.stringify(listaPalavras, null, 2);
await fs.promises.writeFile(arquivoNovo, textoPalavras, 'utf-8');
console.log('Arquivo criado');
}
Se quiser validar passo a passo, teste também:
console.log('link:', link);
console.log('endereco:', endereco);
e confirme se a pasta resultados está sendo criada corretamente.