require('dotenv').config(); const express = require('express'); const path = require('path'); const fs = require('fs'); const app = express(); const PORT = process.env.PORT || 3000; // Middleware app.use(express.json()); app.use(express.static(path.join(__dirname, 'public'))); // API: получение данных из .env app.get('/api/config', (req, res) => { res.json({ address: process.env.ADDRESS, email: process.env.EMAIL, phones: process.env.PHONES ? process.env.PHONES.split(',').map(p => p.trim()) : [], activity: process.env.ACTIVITY, disclaimer1: process.env.DISCLAIMER1, disclaimer2: process.env.DISCLAIMER2 }); }); // API: сохранение заявки в JSON-файл const dataDir = path.join(__dirname, 'data'); const requestsFile = path.join(dataDir, 'requests.json'); // Убедимся, что папка data существует if (!fs.existsSync(dataDir)) { fs.mkdirSync(dataDir); } // Инициализируем файл, если его нет if (!fs.existsSync(requestsFile)) { fs.writeFileSync(requestsFile, JSON.stringify([], null, 2)); } app.post('/api/request', (req, res) => { const newRequest = req.body; // Проверка обязательных полей на сервере if (!newRequest.inn || !newRequest.phone) { return res.status(400).json({ error: 'ИНН и телефон обязательны' }); } try { const data = fs.readFileSync(requestsFile, 'utf8'); const requests = JSON.parse(data); // Назначаем новый ID (максимальный + 1) const lastId = requests.length > 0 ? Math.max(...requests.map(r => r.id || 0)) : 0; newRequest.id = lastId + 1; newRequest.createdAt = new Date().toISOString(); requests.push(newRequest); fs.writeFileSync(requestsFile, JSON.stringify(requests, null, 2)); res.status(201).json({ message: 'Заявка принята', id: newRequest.id }); } catch (err) { console.error(err); res.status(500).json({ error: 'Ошибка сервера' }); } }); // Маршруты страниц (без расширения .html) app.get('/', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'index.html')); }); app.get('/demontazh', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'demontazh.html')); }); app.get('/ustranenie', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'ustranenie.html')); }); app.get('/license', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'license.html')); }); app.get('/certificates', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'certificates.html')); }); app.get('/personnel', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'personnel.html')); }); app.get('/fleet', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'fleet.html')); }); app.get('/waste-license', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'waste-license.html')); }); app.get('/scrap-license', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'scrap-license.html')); }); app.get('/fleet-all', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'fleet-all.png')); }); // Запуск сервера app.listen(PORT, () => { console.log(`Сервер запущен на http://localhost:${PORT}`); });