Módulo de configuração
Em aplicações reais, separar configurações em módulos dedicados evita espalhar valores mágicos pelo código e facilita mudanças centralizadas. Você já deve ter visto URLs de banco, portas e chaves de API definidas como constantes exportadas — é o padrão em projetos Node.js com variáveis de ambiente. Dominar esse padrão torna seu código mais previsível e fácil de manter, especialmente quando você precisa validar se todas as configurações essenciais foram definidas.
O PROBLEMA
Crie módulo config.js com export const. Crie validarConfig().
EXEMPLO
// config.js
export const DB_URL = "postgresql://...";
export const PORT = 3000;
export function validarConfig() {
if (!DB_URL) throw new Error("DB_URL obrigatório");
}SOBRE O CONCEITO
O exercício pede que você crie um módulo config.js usando export const para expor valores de configuração e uma função validarConfig(). O erro comum é exportar um objeto mutável, como export const config = { dbUrl: '...' };. Isso é problemático porque qualquer módulo que importe esse objeto pode alterar suas propriedades acidentalmente, quebrando a imutabilidade esperada das configurações. No lugar disso, exporte valores primitivos ou funções diretamente, como export const DB_URL = '...'. A validação deve checar valores obrigatórios e lançar erro com throw se faltarem, garantindo que o sistema não rode com configurações inválidas. O uso de if condicional e throw é essencial aqui, e o código proibido (export default, require, class, loops) manteria o módulo menos idiomático ou mais complexo do que o necessário.
RESOLUÇÃO