new-zoz/backend/server.js
2025-02-12 14:05:01 +01:00

67 lines
1.9 KiB
JavaScript

const express = require("express");
const fs = require("fs");
const path = require("path");
const cors = require("cors");
const app = express();
const PORT = 4000;
// Ścieżki do plików JSON
const UCZNIOWIE_FILE = path.join(__dirname, "uczniowie.json");
const KRYTERIA_FILE = path.join(__dirname, "kryteria.json");
const DANE_FILE = path.join(__dirname, "dane.json");
// Middleware do obsługi JSON i CORS
app.use(express.json());
app.use(cors());
// Endpoint do pobierania listy uczniów
app.get("/uczniowie", (req, res) => {
fs.readFile(UCZNIOWIE_FILE, "utf8", (err, data) => {
if (err) {
console.error("Błąd odczytu uczniów:", err);
return res.status(500).send("Błąd odczytu uczniów.");
}
res.json(JSON.parse(data));
});
});
// Endpoint do pobierania listy kryteriów
app.get("/kryteria", (req, res) => {
fs.readFile(KRYTERIA_FILE, "utf8", (err, data) => {
if (err) {
console.error("Błąd odczytu kryteriów:", err);
return res.status(500).send("Błąd odczytu kryteriów.");
}
res.json(JSON.parse(data));
});
});
// Endpoint do pobierania danych uczniów
app.get("/dane", (req, res) => {
fs.readFile(DANE_FILE, "utf8", (err, data) => {
if (err) {
console.error("Błąd odczytu danych:", err);
return res.status(500).send("Błąd odczytu danych.");
}
res.json(JSON.parse(data));
});
});
// Endpoint do zapisywania danych uczniów
app.post("/dane", (req, res) => {
const newData = req.body;
fs.writeFile(DANE_FILE, JSON.stringify(newData, null, 2), err => {
if (err) {
console.error("Błąd zapisywania danych:", err);
return res.status(500).send("Błąd zapisywania danych.");
}
res.send("Dane zapisane pomyślnie.");
});
});
// Uruchomienie serwera
app.listen(PORT, () => {
console.log(`Serwer API działa na http://localhost:${PORT}`);
});