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.
Por que a modularização é essencial no desenvolvimento 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"
nopackage.json
. - Evite misturar
require
eimport
no mesmo projeto para manter a consistência.
Contribuições de Lucas Fernandes