sothis-contratacao-api/src/app.js

36 lines
1.7 KiB
JavaScript
Raw Normal View History

// Ponto de entrada para a API
const loadEnv = require('./shared/config/environment.js');
loadEnv();
const express = require('express');
const cors = require('cors');
const routes = require('./routes/routes.js');
const logger = require('./shared/utils/logger.js');
const app = express();
const PORT = process.env.PORT || 3000;
app.use(cors());
app.use(express.json());
app.use('/api', routes);
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.
*/