Avatar ·

Para que serve module.exports no Node.js e como usá-lo corretamente?

Olá a todos! Acabei de começar a estudar Node.js e não consigo entender o que é module.exports e para que serve. Até li a documentação, mas ainda fico confuso. Digamos que eu tenha um arquivo `math.js`, onde escrevo funções simples para soma e multiplicação: ```javascript function add(a, b) { return a + b; } function multiply(a, b) { return a * b; } ``` E em outro arquivo `app.js` quero usar essas funções: ```javascript console.log(add(2, 3)); // Erro: add is not defined ``` Mas recebo um erro. Entendo que preciso de alguma forma "exportar" as funções, mas não entendo a diferença entre `module.exports` e `exports`, e por que não posso simplesmente usar variáveis globais. Também vi que alguns escrevem `module.exports = { ... }`, enquanto outros escrevem `exports.functionName = ...`. Qual é a forma correta? E o que acontece se eu escrever `module.exports = function() { ... }`? Expliquem, por favor, com exemplos simples, como isso funciona e quando usar cada forma.