Fundamentos de CommonJS — require/module.exports e exports
Aprenda CommonJS: require(), module.exports, o atalho exports e uma pequena introdução à interoperabilidade com ESM
Fundamentos de CommonJS — require/module.exports e exports é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 2 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 3 aulas no total.
CJS: visão geral
Objetivo: ler e escrever pequenos módulos CommonJS.
- require() carrega módulos
- module.exports é o objeto de exportação
- exports é um atalho para o mesmo objeto
- Uma visão rápida da interoperabilidade com ESM

require() — ideia
require(path) retorna o objeto exportado pelo módulo em CommonJS.
// CommonJS import uses require()
const cjsExample = [
"const math = require(\\"./math.js\\");",
"console.log(math.sum(2, 3));"
];
console.log("require() example:");
for (const line of cjsExample) console.log(line);
// Emulate a loaded module object
const loaded = { sum: function (a, b) { return a + b; } };
console.log("emulated require sum:", loaded.sum(2, 3));
module.exports
Atribua um valor a module.exports para exportá-lo (função, objeto etc.).
// module.exports sets what the module returns
const lines1 = [
"function greet(name) { return \\"Hi \\" + name; }",
"module.exports = greet;"
];
console.log("module.exports example:");
for (const l of lines1) console.log(l);
// Emulate consumption
function greet(name) { return "Hi " + name; }
const api1 = greet; // like module.exports = greet
console.log("use exported fn:", api1("Ayla"));
Atalho exports
exports.prop = ... é adequado; não reatribua exports = ..., pois ele deixará de apontar para module.exports.
// exports is a shortcut to module.exports (same object)
const lines2 = [
"// Good: add properties",
"exports.sum = function (a, b) { return a + b; };",
"",
"// Pitfall: reassigning exports breaks the link",
"exports = function () {}; // WRONG"
];
console.log("exports shortcut:");
for (const l of lines2) console.log(l);
// Emulate good usage
const moduleObj = {};
const exportsRef = moduleObj; // like exports === module.exports initially
exportsRef.sum = function (a, b) { return a + b; };
console.log("sum via exportsRef:", moduleObj.sum(2, 4));
Várias exportações
Você pode exportar um objeto que contenha várias funções e lê-las por meio de propriedades.
// Export an object with multiple members
const lines3 = [
"function add(a, b) { return a + b; }",
"function mul(a, b) { return a * b; }",
"module.exports = { add, mul };"
];
console.log("multiple exports object:");
for (const l of lines3) console.log(l);
// Emulate consumption
const api2 = {
add: function (a, b) { return a + b; },
mul: function (a, b) { return a * b; }
};
console.log("use add/mul:", api2.add(1, 2), api2.mul(2, 3));
Visão geral de ESM ↔ CJS
Interoperabilidade (visão geral):
- Ao importar CJS, o ESM geralmente recebe module.exports do CJS como a exportação padrão.
- Exemplo: import pkg from "./cjs.js" e depois use pkg.add().
- Mantenha os exemplos simples; evite misturar estilos no mesmo arquivo, a menos que seja necessário.

Quiz sobre a sintaxe de exportação CJS
Verificação rápida: exportação em CommonJS.

Recapitulação
Recapitulação: carregue com require(), exporte com module.exports, adicione propriedades por meio de exports.prop e evite reatribuir exports. A interoperabilidade com ESM geralmente mapeia module.exports do CJS para uma exportação padrão.

Perguntas Frequentes
A aula “Fundamentos de CommonJS — require/module.exports e exports” é grátis?
Sim — o texto completo de “Fundamentos de CommonJS — require/module.exports e exports” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 3 aulas no total.
O que vou aprender em “Fundamentos de CommonJS — require/module.exports e exports”?
Aprenda CommonJS: require(), module.exports, o atalho exports e uma pequena introdução à interoperabilidade com ESM Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar JavaScript Academy?
Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 3.
Quanto tempo leva a aula “Fundamentos de CommonJS — require/module.exports e exports”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de JavaScript Academy?
Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Fundamentos de ESM — import/export, padrão versus nomeado
- Fundamentos de CommonJS — require/module.exports e exports
- Resolução de módulos no Node e em empacotadores de navegador