2025-11-24 10:59:46 -03:00
|
|
|
// Ponto de entrada para a API
|
|
|
|
|
const loadEnv = require('./shared/config/environment.js');
|
|
|
|
|
loadEnv();
|
|
|
|
|
|
2025-11-12 11:13:39 -03:00
|
|
|
const express = require('express');
|
2025-11-14 08:16:04 -03:00
|
|
|
const cors = require('cors');
|
2025-11-24 10:59:46 -03:00
|
|
|
const routes = require('./routes/routes.js');
|
|
|
|
|
const logger = require('./shared/utils/logger.js');
|
2025-11-12 11:13:39 -03:00
|
|
|
|
|
|
|
|
const app = express();
|
2025-11-24 10:59:46 -03:00
|
|
|
const PORT = process.env.PORT || 3000;
|
2025-11-12 11:13:39 -03:00
|
|
|
|
2025-11-14 08:16:04 -03:00
|
|
|
app.use(cors());
|
2025-11-24 10:59:46 -03:00
|
|
|
app.use(express.json());
|
2025-11-12 11:13:39 -03:00
|
|
|
app.use('/api', routes);
|
|
|
|
|
|
2025-11-24 10:59:46 -03:00
|
|
|
app.listen(PORT, () => {
|
|
|
|
|
logger.info(`🚀 Servidor API rodando na porta ${PORT} em modo ${process.env.NODE_ENV}`);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
DESCRIÇÃO:
|
|
|
|
|
Este arquivo é o ponto de entrada principal (entry point) da aplicação. Ele é responsável por inicializar e configurar o servidor Express.
|
|
|
|
|
|
|
|
|
|
FLUXO:
|
|
|
|
|
1. Carrega as variáveis de ambiente a partir do arquivo `.env` utilizando a função `loadEnv`.
|
|
|
|
|
2. Importa as dependências necessárias, como o `express` para o servidor, `routes` para o roteamento e `logger` para os logs.
|
|
|
|
|
3. Cria uma instância do aplicativo Express.
|
|
|
|
|
4. Define a porta do servidor, utilizando a variável de ambiente `PORT` ou o valor padrão `3000`.
|
|
|
|
|
5. Configura o middleware `express.json()` para permitir que a API aceite e interprete corpos de requisição no formato JSON.
|
|
|
|
|
6. Associa as rotas importadas de `./routes/routes.js` ao prefixo `/api`. Todas as rotas definidas nesse arquivo serão acessíveis a partir de `/api/...`.
|
|
|
|
|
7. Inicia o servidor para escutar na porta definida.
|
|
|
|
|
8. Registra um log informativo quando o servidor é iniciado com sucesso, indicando a porta e o ambiente de execução (`development`, `production`, etc.).
|
|
|
|
|
|
|
|
|
|
Este arquivo é o coração da API, orquestrando a configuração inicial e o roteamento de todas as requisições recebidas.
|
|
|
|
|
*/
|