const express = require('express'); const axios = require('axios'); const app = express(); app.use(express.json()); app.post('/fetch-sheet', async (req, res) => { const { key, list, page, max } = req.body; if (!key || !list || !page || !max) { return res.status(400).json({ error: '❌ Ошибка данных, повторите попытку.' }); } // Экранирование значений для использования в URL const encodedKey = encodeURIComponent(key); const encodedList = encodeURIComponent(list); try { const url = `https://opensheet.elk.sh/${encodedKey}/${encodedList}`; const response = await axios.get(url); const data = response.data; // Разделение данных на страницы const startIndex = (page - 1) * max; const endIndex = startIndex + max; const paginatedData = data.slice(startIndex, endIndex); res.json(paginatedData); } catch (error) { console.error(error); res.status(500).json({ error: '❌ Произошла ошибка сервера при запросе данных.' }); } }); const port = 7860; app.listen(port, () => { console.log(`API сервер запущен на порту ${port}`); });