Como importar e exportar módulos no Node.js?

No Node.js, os módulos podem ser importados e exportados usando CommonJS (require/module.exports) ou ES Modules (import/export).

Como importar e exportar módulos no Node.js?

O Node.js permite dividir o código em módulos reutilizáveis. Para importar e exportar módulos, podemos usar CommonJS (require/module.exports) ou ES Modules (import/export).

Exportando módulos com CommonJS

A forma mais tradicional de exportar um módulo é usando module.exports. Exemplo:

Criando um módulo calculadora.js:

function somar(a, b) {
    return a + b;
}

function subtrair(a, b) {
    return a - b;
}

module.exports = { somar, subtrair };

Aqui, estamos exportando um objeto com duas funções.

Importando um módulo com CommonJS

Agora, podemos importar o módulo calculadora.js em outro arquivo:

const calculadora = require('./calculadora');
console.log(calculadora.somar(5, 3));

Neste exemplo, usamos require para importar o módulo e acessar suas funções.

Exportando módulos com ES Modules

O ES Modules usa a sintaxe export para exportar funções ou classes:

export function multiplicar(a, b) {
    return a * b;
}

export function dividir(a, b) {
    return a / b;
}

Ou podemos exportar tudo de uma vez:

const raizQuadrada = (num) => Math.sqrt(num);
export default raizQuadrada;

Importando módulos com ES Modules

No arquivo onde queremos usar essas funções, importamos com import:

import { multiplicar, dividir } from './math.js';
console.log(multiplicar(4, 2));

Se o módulo tiver uma exportação padrão (export default), importamos assim:

import raizQuadrada from './math.js';
console.log(raizQuadrada(16));

Quando usar CommonJS ou ES Modules?

  • CommonJS (require): É o padrão no Node.js até a versão 12 e ainda é amplamente usado.
  • ES Modules (import/export): Recomendado para novos projetos e compatível com a maioria dos frameworks modernos.

Conclusão

O Node.js suporta tanto CommonJS quanto ES Modules. Se estiver trabalhando com código legado ou pacotes npm, require/module.exports pode ser a melhor opção. Para projetos modernos, prefira import/export para uma sintaxe mais limpa e compatível com o JavaScript moderno.

O conceito de módulos existe há muito tempo, mas no JavaScript ganhou força com a evolução da linguagem e a adoção do Node.js.

Antes dos módulos, os projetos eram monolíticos, com arquivos enormes e difíceis de manter. Com a modularização, o código se tornou mais organizado, reutilizável e escalável.

Hoje, tanto CommonJS quanto ES Modules são amplamente utilizados. Enquanto o require ainda domina em projetos antigos, import/export se tornou o padrão para aplicações modernas, principalmente no desenvolvimento full-stack com frameworks como React e Next.js.

Algumas aplicações:

  • Organização e reutilização de código
  • Facilidade na manutenção de projetos
  • Importação de pacotes e bibliotecas externas
  • Melhoria na legibilidade do código
  • Compatibilidade com padrões modernos de desenvolvimento

Dicas para quem está começando

  • Prefira import/export para projetos modernos, pois é compatível com JavaScript ES6.
  • Use module.exports se estiver lidando com pacotes npm ou código legado.
  • Sempre nomeie seus módulos de forma intuitiva para facilitar a leitura.
  • Se estiver recebendo erros ao usar ES Modules, adicione "type": "module" no package.json.
  • Evite misturar require e import no mesmo projeto para manter a consistência.

Contribuições de Lucas Fernandes

Compartilhe este tutorial: Como importar e exportar módulos no Node.js?

Compartilhe este tutorial

Continue aprendendo:

O que são módulos no Node.js?

Módulos no Node.js são arquivos JavaScript independentes que encapsulam funcionalidades e podem ser reutilizados em diferentes partes do código.

Tutorial anterior

Qual a diferença entre require e import no Node.js?

Require e import são formas de importar módulos no Node.js. Require é usado no CommonJS, enquanto import pertence ao ES Modules.

Próximo tutorial