Menu
CoddyTech

Módulos CommonJS

Parte da seção Fundamentos de Node.js do Journey de Node.js da Coddy. Lição 9 de 24.

Grande parte do código Node que você vai ler, em pacotes npm e tutoriais mais antigos, usa outro sistema de módulos.

O CommonJS exporta com module.exports e importa com require. O Node ainda executa esse código em arquivos que terminam em .cjs, e um import desse tipo de arquivo fornece o objeto module.exports como padrão:

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

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

exports começa sendo o mesmo objeto que module.exports. exports.hello = hello adiciona algo a ele; exports = { hello } substitui a variável, e o importador recebe um objeto vazio.

challenge icon

Desafio

Fácil
  • Conclua countWords(notes) em legacy/stats.cjs: quantas palavras as notas têm ao todo.
  • Importe-o em notes.js com import stats from './legacy/stats.cjs'.
  • Um comando stats exibe 3 notes, 7 words.

Execute node notes.js stats. Depois, add uma nota e execute stats novamente: ainda são 3, pois nada foi salvo.

Experimente você mesmo

// Um módulo mais antigo, escrito no estilo CommonJS.
function countWords(notes) {
    // Retorne o total de palavras em todas as notes juntas.
    return 0;
}

module.exports = { countWords };

Todas as lições de Fundamentos de Node.js