initial page
This commit is contained in:
74
server.js
Normal file
74
server.js
Normal file
@@ -0,0 +1,74 @@
|
||||
const express = require('express');
|
||||
const cors = require('cors');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const app = express();
|
||||
const PORT = process.env.PORT || 3000;
|
||||
const TASKS_FILE = path.join(__dirname, 'tasks.json');
|
||||
|
||||
// Middleware
|
||||
app.use(cors());
|
||||
app.use(express.json());
|
||||
app.use(express.static('public'));
|
||||
|
||||
// Lade Aufgaben
|
||||
function loadTasks() {
|
||||
try {
|
||||
const data = fs.readFileSync(TASKS_FILE, 'utf8');
|
||||
return JSON.parse(data);
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Laden der Aufgaben:', error);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
// Speichere Aufgaben
|
||||
function saveTasks(tasks) {
|
||||
fs.writeFileSync(TASKS_FILE, JSON.stringify(tasks, null, 2));
|
||||
}
|
||||
|
||||
// API: Hole alle Aufgaben
|
||||
app.get('/api/tasks', (req, res) => {
|
||||
const tasks = loadTasks();
|
||||
res.json({ tasks });
|
||||
});
|
||||
|
||||
|
||||
// API: Prüfe Antwort
|
||||
app.post('/api/check-answer', (req, res) => {
|
||||
const { taskId, answer } = req.body;
|
||||
|
||||
if (!taskId || answer === undefined) {
|
||||
return res.status(400).json({ error: 'taskId und answer sind erforderlich' });
|
||||
}
|
||||
|
||||
const tasks = loadTasks();
|
||||
const taskIndex = tasks.findIndex(t => t.id === taskId);
|
||||
|
||||
if (taskIndex === -1) {
|
||||
return res.status(404).json({ error: 'Aufgabe nicht gefunden' });
|
||||
}
|
||||
|
||||
const task = tasks[taskIndex];
|
||||
const userAnswer = parseInt(answer);
|
||||
const correctAnswer = parseInt(task.answer);
|
||||
const isCorrect = userAnswer === correctAnswer;
|
||||
|
||||
// Speichere Antwort und isCorrect in der Task
|
||||
tasks[taskIndex].userAnswer = userAnswer;
|
||||
tasks[taskIndex].isCorrect = isCorrect;
|
||||
saveTasks(tasks);
|
||||
|
||||
res.json({
|
||||
correct: isCorrect,
|
||||
correctAnswer: correctAnswer,
|
||||
points: isCorrect ? task.points : 0
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// Starte Server
|
||||
app.listen(PORT, () => {
|
||||
console.log(`MathQuest Server läuft auf http://localhost:${PORT}`);
|
||||
});
|
||||
Reference in New Issue
Block a user