Basi di CommonJS — require/module.exports ed exports
Impari CommonJS: require(), module.exports, la scorciatoia exports e un primo assaggio dell’interoperabilità con ESM.
Basi di CommonJS — require/module.exports ed exports è una lezione JavaScript Academy gratuita su CoddyKit. Questa è la lezione 2 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento JavaScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso JavaScript Academy include 3 lezioni in totale.
CJS: quadro generale
Obiettivo: leggere e scrivere piccoli moduli CommonJS.
- require() carica i moduli
- module.exports è l'oggetto delle esportazioni
- exports è una scorciatoia per lo stesso oggetto
- Breve panoramica dell'interoperabilità con ESM

require() — concetto
require(path) restituisce l'oggetto esportato dal modulo in 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
Assegni un valore a module.exports per esportarlo (una funzione, un oggetto e così via).
// 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"));
Scorciatoia exports
exports.prop = ... è corretto; non riassegni exports = ..., perché non punta più a 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));
Esportazioni multiple
È possibile esportare un oggetto che contiene molte funzioni e leggerle tramite le proprietà.
// 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));
ESM ↔ CJS in breve
Interoperabilità (in breve):
- L'ESM che importa CJS spesso riceve module.exports di CJS come esportazione predefinita.
- Esempio: import pkg from "./cjs.js", quindi usi pkg.add().
- Mantenga gli esempi semplici; eviti di mescolare gli stili nello stesso file, a meno che non sia necessario.

Quiz sulla sintassi delle esportazioni CJS
Controllo rapido: esportare in CommonJS.

Riepilogo
Riepilogo: carichi con require(), esporti con module.exports, aggiunga proprietà tramite exports.prop ed eviti di riassegnare exports. L'interoperabilità ESM spesso associa module.exports di CJS a un'esportazione predefinita.

Domande Frequenti
La lezione «Basi di CommonJS — require/module.exports ed exports» è gratuita?
Sì — il testo completo di «Basi di CommonJS — require/module.exports ed exports» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso JavaScript Academy, passa a CoddyKit PRO. Il corso JavaScript Academy include 3 lezioni in totale.
Cosa imparerò in «Basi di CommonJS — require/module.exports ed exports»?
Impari CommonJS: require(), module.exports, la scorciatoia exports e un primo assaggio dell’interoperabilità con ESM. Eserciti JavaScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare JavaScript Academy?
Non è richiesta alcuna esperienza precedente. JavaScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 3.
Quanto tempo richiede la lezione «Basi di CommonJS — require/module.exports ed exports»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione JavaScript Academy?
Sì. Ogni lezione JavaScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Basi di ESM — import/export, default e named
- Basi di CommonJS — require/module.exports ed exports
- Risoluzione dei moduli in Node e nei bundler per browser