Menu
CoddyTech

Módulos CommonJS

Parte de la sección Conceptos básicos de Node.js del Journey de Node.js de Coddy. Lección 9 de 24.

Gran parte del código de Node que leerás en paquetes de npm y tutoriales antiguos utiliza otro sistema de módulos.

CommonJS exporta con module.exports e importa con require. Node todavía lo ejecuta en archivos que terminan en .cjs, y una instrucción import de ese tipo de archivo te proporciona su objeto module.exports como valor predeterminado:

// greet.cjs
function hello(name) {
    return 'Hello, ' + name;
}
module.exports = { hello };

// app.js
import greet from './greet.cjs';
console.log(greet.hello('Ada'));

exports empieza siendo el mismo objeto que module.exports. exports.hello = hello lo amplía; exports = { hello } reemplaza la variable, y el módulo que importa recibe un objeto vacío.

challenge icon

Desafío

Fácil
  • Completa countWords(notes) en legacy/stats.cjs: cuántas palabras contienen las notas en total.
  • Impórtala en notes.js con import stats from './legacy/stats.cjs'.
  • Un comando stats imprime 3 notes, 7 words.

Ejecuta node notes.js stats. Después, add una nota y ejecuta stats otra vez: siguen siendo 3, ya que todavía no se guarda nada.

Pruébalo tú mismo

// Un módulo antiguo, escrito al estilo CommonJS.
function countWords(notes) {
    // Devuelve el número total de palabras que contienen todas las notas.
    return 0;
}

module.exports = { countWords };

Todas las lecciones de Conceptos básicos de Node.js