const express = require('express'); const axios = require('axios'); const cheerio = require('cheerio'); const cors = require('cors'); const path = require('path'); const app = express(); const port = 3003; // Permette richieste da qualsiasi origine app.use(cors()); // Route API che estrae i dati da monitor app.get('/', async (req, res) => { try { const { Bacino, Data, exclude } = req.query; const response = await axios.get(`https://servizi.startromagna.it/corsesoppresse/corsesopp?param1=${Bacino}¶m2=${Data}`); const $ = cheerio.load(response.data); // Parse excluded column indexes from query const excludeIndexes = exclude ? exclude.split(',').map(i => parseInt(i)).filter(i => !isNaN(i)) : []; const rows = []; $('#GridView1 tbody tr').each((i, row) => { const allColumns = $(row).find('td').map((j, col) => $(col).text().trim()).get(); if (allColumns.length > 0) { // Filter out excluded columns const filteredColumns = allColumns.filter((_, idx) => !excludeIndexes.includes(idx)); rows.push(filteredColumns); } }); res.json(rows); } catch (error) { console.error(error); res.status(500).send('Errore nel recupero dei dati'); } }); app.listen(port, () => { console.log(`Server avviato su http://localhost:${port}`); });