Capítulo 10: Organização em Módulos 📁🧱
Neste capítulo, vamos aprender a dividir nosso código em vários arquivos usando os Módulos, com o tema Lego!
📖 Por que usar Módulos?
Quando os projetos crescem, colocar tudo em um único arquivo .js fica confuso. Dividir o código em módulos (como blocos de Lego) facilita a organização e o reuso de código!
Em Node.js clássico, usamos o sistema CommonJS com require() e module.exports.
📖 Exemplo Guiado: Construindo com Blocos
Vamos criar um módulo para operações matemáticas simples e usá-lo na nossa main.
- Crie o arquivo
operacoes.jsna pastasrc/:
// Este arquivo é o nosso módulo (bloco de Lego)
const somar = (a, b) => a + b;
const subtrair = (a, b) => a - b;
// Exportando as funções para que outros arquivos possam usar
module.exports = {
somar,
subtrair
};- Crie o arquivo
main_lego.jsna pastasrc/(na mesma pasta):
// Importando o módulo que criamos
// O './' indica que o arquivo está na mesma pasta
const operacoes = require("./operacoes");
const resultadoSoma = operacoes.somar(10, 5);
const resultadoSub = operacoes.subtrair(10, 5);
console.log(`Resultado da soma dos blocos: ${resultadoSoma}`);
console.log(`Resultado da subtracao dos blocos: ${resultadoSub}`);🕹️ Como Executar e Testar no VS Code
- Abra o terminal integrado.
- Execute:
node main_lego.js
Resultado Esperado:
Resultado da soma dos blocos: 15
Resultado da subtracao dos blocos: 5📊 Ilustração Visual: Estrutura Modular
Veja como os arquivos se conectam:
graph TD A[main_lego.js] -->|require| B[operacoes.js] B -->|module.exports| A
🛠️ Prática Obrigatória 1: Módulo de Mensagens
Crie um módulo chamado mensagens.js que exporte uma função chamada saudacao(nome) que retorne a string “Ola, [nome], bem-vindo ao jogo!“. Depois, importe e use essa função no arquivo main_lego.js.
🔑 Gabarito de Código
Prática 1: Arquivos atualizados
mensagens.js
const saudacao = (nome) => `Ola, ${nome}, bem-vindo ao jogo!`;
module.exports = {
saudacao
};Uso na main_lego.js
const mensagens = require("./mensagens");
console.log(mensagens.saudacao("Arthur"));📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
(Siga o padrão estabelecido no Guia)