From e9bbe9d2fcbe627fa7970b655032ecd09c1d9d68 Mon Sep 17 00:00:00 2001 From: numex-admin Date: Wed, 9 Sep 2026 22:41:07 +0000 Subject: [PATCH] =?UTF-8?q?Numex=20yay=C4=B1n:=20server.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server.js | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 server.js diff --git a/server.js b/server.js new file mode 100644 index 0000000..c5ada0d --- /dev/null +++ b/server.js @@ -0,0 +1,57 @@ +import express from 'express'; +import { join, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { readFileSync } from 'node:fs'; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const app = express(); +const PORT = Number(process.env.PORT) || 3965; +const DATA_YOLU = join(__dirname, 'data', 'data.json'); + +let dataCache = null; +function vitrinVerisi() { + try { + if (!dataCache) dataCache = JSON.parse(readFileSync(DATA_YOLU, 'utf8')); + return dataCache; + } catch { + return null; + } +} + +app.use(express.json()); +app.use(express.static(join(__dirname, 'public'))); + +// Vitrin verisi (hizmetler, fiyatlar, adres, saatler vb.) +app.get('/api/data', (_req, res) => { + const v = vitrinVerisi(); + if (!v) return res.status(500).json({ ok: false, mesaj: 'Veri dosyası okunamadı.' }); + return res.json(v); +}); + +// Randevu / yerinde servis talebi kaydı (demo: dosyaya eklemeden, sadece doğrular ve onaylar) +app.post('/api/randevu', (req, res) => { + const { ad, telefon, hizmet, ilce, adres, not } = req.body || {}; + if (!ad || !telefon || !hizmet || !adres) { + return res.status(400).json({ ok: false, mesaj: 'Ad, telefon, hizmet ve adres zorunludur.' }); + } + return res.status(201).json({ + ok: true, + mesaj: 'Talebiniz alındı. En kısa sürede sizinle iletişime geçeceğiz.', + kayit: { ad, telefon, hizmet, ilce, adres, not, talep_zamani: new Date().toISOString() } + }); +}); + +app.get('/api/health', (_req, res) => + res.json({ ok: true, hizmet: 'Omer Kalpat Cep Telefonu Tamiri', mod: 'yerinde-tamir-vitrin' }) +); + +const srv = app.listen(PORT, () => + console.log('Omer Kalpat Cep Telefonu Tamiri -> http://localhost:' + PORT) +); +srv.on('error', (err) => { + if (err && err.code === 'EADDRINUSE') { + console.error('Port ' + PORT + ' zaten kullanımda. Lütfen mevcut servisi durdurup yeniden başlatın ya da PORT ortam değişkeniyle başka bir port verin.'); + } else { + console.error('Sunucu hatası:', err && err.message); + } +});