Francisco Chaves

Francisco Chaves

Software Developer.
Chatbot Developer.

© 2026

Modo escuro

Módulos em Node.js: Tipos, Diferenças e Exemplos Práticos

Logo

Olá pessoal, hoje vamos explorar o universo dos módulos no Node.js.

Os módulos são blocos de código encapsulados que podem ser reutilizados em diferentes partes de uma aplicação. No Node.js, cada arquivo é tratado como um módulo separado, o que ajuda a manter o código organizado, modular e fácil de manter.

Neste artigo, vamos ver os tipos de módulos no Node.js, as diferenças entre os sistemas de módulos (CommonJS e ES Modules) e exemplos práticos.

📦 Repositório de Exemplos: Todos os exemplos deste artigo estão disponíveis no GitHub para você clonar e executar: nodejs-modules-examples

  1. Tipos de Módulos no Node.js
    1. Core Modules (Módulos Nativos)
    2. Local Modules (Módulos Locais)
    3. Third-party Modules (Módulos de Terceiros)
  2. Sistemas de Módulos: CommonJS vs ES Modules
    1. CommonJS (CJS)
    2. ES Modules (ESM)
    3. Diferenças Chave

Tipos de Módulos no Node.js

Existem três tipos principais de módulos no Node.js:

  1. Core Modules (Módulos Nativos)
  2. Local Modules (Módulos Locais)
  3. Third-party Modules (Módulos de Terceiros)

1. Core Modules (Módulos Nativos)

Estes são módulos que vêm embutidos na instalação do Node.js. Você não precisa instalá-los separadamente. Exemplos comuns incluem http, fs (file system), path, os, etc.

Exemplo:

const os = require('os');

console.log('Plataforma:', os.platform());
console.log('Arquitetura:', os.arch());

2. Local Modules (Módulos Locais)

São módulos criados por você dentro da sua aplicação. Eles podem conter funções, objetos ou variáveis que você deseja usar em outros arquivos do seu projeto.

Crie o arquivo calculadora.js:

const somar = (a, b) => a + b;
const subtrair = (a, b) => a - b;

module.exports = {
  somar,
  subtrair,
};

Agora importe no app.js:

const calculadora = require('./calculadora');

console.log('Soma:', calculadora.somar(5, 3));
console.log('Subtração:', calculadora.subtrair(5, 3));

3. Third-party Modules (Módulos de Terceiros)

São módulos criados pela comunidade e disponibilizados através do NPM (Node Package Manager). Para usá-los, você precisa instalá-los primeiro.

Instale a dependência colors:

npm install colors

Utilize o pacote no seu código:

const colors = require('colors');

console.log('Olá, Mundo!'.green);
console.log('Node.js é incrível'.rainbow);

Sistemas de Módulos: CommonJS vs ES Modules

O Node.js suporta dois padrões principais de módulos: CommonJS (o padrão tradicional) e ES Modules (o padrão moderno do JavaScript).

1. CommonJS (CJS)

É o sistema padrão do Node.js. Utiliza require() para importar e module.exports para exportar. É síncrono e foi projetado para uso no servidor.

Arquivo logger.js:

function log(mensagem) {
  console.log(`[LOG]: ${mensagem}`);
}

module.exports = log;

Arquivo index.js:

const log = require('./logger');
log('Iniciando sistema...');

Nota: No exemplo acima, exportamos a função diretamente (module.exports = log). Se quiséssemos exportar múltiplos itens, usaríamos um objeto, como no exemplo da calculadora (module.exports = { somar, subtrair }).

2. ES Modules (ESM)

É o padrão oficial da linguagem JavaScript (ECMAScript). Utiliza import e export. É assíncrono e permite otimizações como tree-shaking.

Para usar ES Modules no Node.js, você pode usar a extensão .mjs ou adicionar "type": "module" no package.json.

Arquivo saudacao.mjs:

export function ola(nome) {
  return `Olá, ${nome}!`;
}

export const DATA_ATUAL = new Date();

Arquivo main.mjs:

import { ola, DATA_ATUAL } from './saudacao.mjs';

console.log(ola('Francisco'));
console.log('Data:', DATA_ATUAL);

Exportação Padrão (Default Export)

Se o módulo tiver apenas um propósito principal (um único item), você pode usar export default. A sintaxe de importação muda (não usa chaves).

Arquivo usuario.mjs:

export default class Usuario {
  constructor(nome) {
    this.nome = nome;
  }
}

Arquivo teste.mjs:

import Usuario from './usuario.mjs'; // Sem chaves!
const user = new Usuario('Maria');

Diferenças Chave

Característica CommonJS (CJS) ES Modules (ESM)
Sintaxe de Importação require() import ... from ...
Sintaxe de Exportação module.exports export / export default
Carregamento Síncrono (bloqueante) Assíncrono
Uso no Navegador Não nativo (requer bundlers) Nativo em navegadores modernos

Conclusão

Entender a diferença entre CommonJS e ES Modules é essencial para qualquer desenvolvedor Node.js moderno. Espero que este guia tenha esclarecido os conceitos!

Valeu pessoal 😎✌️!

Veja também

Referências

Node.js. Documentation. Node.js, 2024. Disponível em: https://nodejs.org/docs/latest/api/modules.html. Acesso em: 13 fev. 2026.

MDN Web Docs. JavaScript modules. MDN, 2024. Disponível em: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules. Acesso em: 15 fev. 2026.

#Compartilhe

Recomendado para você