1
resposta

[Dúvida] Duvida sobre o resultado no console do Node

Diferente do exemplo da aula, o meu console está exibindo o link https entre colchetes. O que pode ser isso?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade O código é esse:

        import fs from 'fs';
        import chalk from 'chalk';


        function extraiLinks (texto) {
            const regex = /\[([^[\]]*?)\]\((https?:\/\/[^\s?#.].[^\s]*)\)/gm;
            const capturas = [...texto.matchAll(regex)];
            const resultados = capturas.map(captura => ({[captura[1]]: [captura[2]]}));
            return resultados;
        }

        function trataErro(erro) {
            console.log(erro);
            throw new Error(chalk.red(erro.code, 'não há arquivo no diretório'));
        }

        async function pegaArquivo(caminhoDoArquivo) {
            try {
                const encoding = 'utf-8';
                const texto = await fs.promises.readFile(caminhoDoArquivo, encoding);
                console.log(extraiLinks(texto));

            } catch (erro) {
                trataErro(erro)

            } finally {
                console.log(chalk.yellow('operação concluída! -- função pegaArquivo foi executada'));
            }
        }

        pegaArquivo('texto.md');
1 resposta

Boa tarde Letícia. No momento de atribuição do valor, você está incluindo um "[]" a mais do que no exemplo da aula.

Você pode substituir a linha const resultados = capturas.map(captura => ({[captura[1]]: [captura[2]]})); por const resultados = capturas.map(captura => ({[captura[1]]: captura[2]}));, tirando os colchetes de captura[2].

Espero ter ajudado :)