1
resposta

Funcionamento do module.exports

Pessoal, tudo certo?

Estou fazendo uns testes no meu código e verifiquei que ao realizar o import da função trocaItem ele executa todo o código do arquivo troca.js e não só a função que estou exportando. Esse comportamento é esperado ou estou fazendo algo errado? Abaixo meus arquivos insertion-sort.js e troca.js:

troca.js

function trocaItem(lista, posAtual, posNova) {
    let aux = lista[posAtual];
    lista[posAtual] = lista[posNova];
    lista[posNova] = aux;
}

console.log("TESTE: Fora da função");

module.exports = trocaItem;

insertion-sort.js

const trocaItem = require('./troca.js');

precosLivros.forEach((_, index) => {
    let atual = index;
    while (atual > 0 && precosLivros[atual].preco < precosLivros[atual - 1].preco) {
        trocaItem(precosLivros, atual, atual - 1);
        atual--;
    }
});
console.log(precosLivros);

Como saída no terminal ele mostra o "TESTE: Fora da função" que fiz de teste: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Obrigado.

1 resposta

Opa Frederico, tudo bem?

Peço desculpa pela demora para responder o seu tópico.

O module.exports é uma propriedade especial no Node.js que permite que módulos JavaScript exportem funções, objetos ou valores primitivos para serem usados em outros arquivos JavaScript. É uma forma de tornar o código modular e reutilizável, permitindo que diferentes partes do código sejam mantidas em arquivos separados e importadas conforme necessário.

Para que você consiga importar somente a função que você precisa do arquivo, sem chamar os outros códigos ao importar, você deve usar a seguinte estrutura:

export default função-Aqui; 

Acho importante apontar que não é preciso colocar os "()" a frente do nome da função, pois dessa forma você vai passar ela sendo executada, assim, ocasionando um erro.

Espero que eu tenha lhe ajudado, caso tenha mais dúvidas ou problemas com relação a este tópico, estarei a sua disposição. Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!