From ab836654f7a1c6c0d6a08d227404b234d0c1a1ca Mon Sep 17 00:00:00 2001 From: "gabriel.amancio" Date: Mon, 2 Feb 2026 10:28:20 -0300 Subject: [PATCH] =?UTF-8?q?FEAT:=20Update=20de=20configura=C3=A7=C3=B5es?= =?UTF-8?q?=20do=20CORs,=20e=20a=20atualiza=C3=A7=C3=A3o=20da=20vers=C3=A3?= =?UTF-8?q?o=20do=20CORs.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 14 ++++++++------ package.json | 2 +- src/app.js | 41 ++++++++++++++++++++++++++++------------- 3 files changed, 37 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index 039ef0e..54288f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "ISC", "dependencies": { "axios": "^1.6.0", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^17.2.3", "express": "^5.1.0", "node-cron": "^4.2.1", @@ -349,9 +349,9 @@ } }, "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", "license": "MIT", "dependencies": { "object-assign": "^4", @@ -359,6 +359,10 @@ }, "engines": { "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/cross-env": { @@ -1222,7 +1226,6 @@ "resolved": "https://registry.npmjs.org/pg/-/pg-8.16.3.tgz", "integrity": "sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==", "license": "MIT", - "peer": true, "dependencies": { "pg-connection-string": "^2.9.1", "pg-pool": "^3.10.1", @@ -1844,7 +1847,6 @@ "resolved": "https://registry.npmjs.org/winston/-/winston-3.18.3.tgz", "integrity": "sha512-NoBZauFNNWENgsnC9YpgyYwOVrl2m58PpQ8lNHjV3kosGs7KJ7Npk9pCUE+WJlawVSe8mykWDKWFSVfs3QO9ww==", "license": "MIT", - "peer": true, "dependencies": { "@colors/colors": "^1.6.0", "@dabh/diagnostics": "^2.0.8", diff --git a/package.json b/package.json index cfa48f8..c6ccac0 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "description": "A robust and scalable Node.js project starter based on Clean Architecture principles.", "dependencies": { "axios": "^1.6.0", - "cors": "^2.8.5", + "cors": "^2.8.6", "dotenv": "^17.2.3", "express": "^5.1.0", "node-cron": "^4.2.1", diff --git a/src/app.js b/src/app.js index e1af6e2..1117cc7 100644 --- a/src/app.js +++ b/src/app.js @@ -8,29 +8,44 @@ const routes = require('./routes/routes.js'); const logger = require('./shared/utils/logger.js'); const app = express(); -app.set('trust proxy', 1); // Confia no primeiro proxy reverso na frente da aplicação +app.set('trust proxy', 1); const PORT = process.env.PORT || 3000; -app.use(cors()); +/** + * CORS + */ +app.use(cors({ + origin: 'https://sothis.com.br', + methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'], + allowedHeaders: ['Content-Type', 'Authorization'] +})); + app.use(express.json()); -// Logar todas as requisições +/** + * Logger + */ app.use((req, res, next) => { - logger.info(`Requisição recebida: ${req.method} ${req.originalUrl} - IP: ${req.ip}`); - next(); + logger.info(`Requisição recebida: ${req.method} ${req.originalUrl} - IP: ${req.ip}`); + next(); }); +/** + * Rotas + */ app.use('/api', routes); -// Tratamento de erros +/** + * Tratamento de erros + */ app.use((err, req, res, next) => { - logger.error(`Erro não tratado: ${err.message}`, { - stack: err.stack, - url: req.originalUrl, - method: req.method, - ip: req.ip - }); - res.status(500).send('Ocorreu um erro interno no servidor.'); + logger.error(`Erro não tratado: ${err.message}`, { + stack: err.stack, + url: req.originalUrl, + method: req.method, + ip: req.ip + }); + res.status(500).send('Ocorreu um erro interno no servidor.'); }); app.listen(PORT, () => {