5.1 KiB
Debug Guide: Kunde Projekt Oprettelse
🔧 Ændringer Implementeret
Problem
Fejl ved oprettelse af kunde projekt - "⚠️ Fejl ved oprettelse af kunde projekt"
Root Cause Analysis
Der var field name mismatch mellem frontend og backend:
- Frontend sender:
projectAddress - Backend forventede:
customerAddress
Løsning Implementeret
1. Backend Service Fix
File: backend/src/services/customerProjectService.js
// Nu accepterer begge field navne:
const {
projectName,
customerName,
customerEmail,
customerPhone,
customerAddress,
projectAddress, // Frontend sender denne
projectDescription
} = projectData;
// Bruger projectAddress hvis customerAddress mangler
const address = customerAddress || projectAddress;
2. Omfattende Logging
Frontend (frontend/src/components/ProjectCreation.js):
✅ Logger formData før send
✅ Logger API URL
✅ Logger response status og headers
✅ Tjekker Content-Type før JSON parsing
✅ Logger success/error responses
✅ Viser detaljeret fejlbesked
Backend Route (backend/src/routes/customerProjects.js):
✅ Logger incoming request data
✅ Logger validation status
✅ Logger success/error med detaljer
✅ Returnerer error.message i response
Backend Service (backend/src/services/customerProjectService.js):
✅ Logger data ved service start
✅ Logger prepared values før DB insert
✅ Logger inserted ID ved success
✅ Logger detailed error ved fejl
🐛 Hvordan Man Debugger
1. Åbn Browser Console (F12)
Gå til Console tab
2. Prøv at Oprette Projekt
- Vælg kunde: "Alexander Warme"
- Indtast projekt navn: "Test Projekt"
- Klik "Opret Projekt"
3. Tjek Console Logs
Success scenario:
📤 Sending project creation request: {
projectName: "Test Projekt",
customerName: "Alexander Warme",
customerEmail: "alexander@warme.dk",
customerPhone: "...",
projectAddress: "...",
projectDescription: ""
}
🌐 API URL: http://localhost:3010/api/customer-projects/projects
📡 Response status: 200
📦 Response data: { success: true, project: {...} }
✅ Project created successfully: {...}
Error scenario:
📤 Sending project creation request: {...}
📡 Response status: 500
❌ Server returned error: Fejl ved oprettelse af kunde projekt
4. Tjek Backend Logs
pm2 logs tilbudgivern-unified --lines 50
Success scenario:
📥 Create project request received: {
projectName: 'Test Projekt',
customerName: 'Alexander Warme',
...
}
✅ Validation passed, creating project...
🏗️ Creating project in service with data: {...}
📝 Prepared values for insertion: {...}
✅ Project inserted with ID: 123
✅ Project created successfully: {...}
Error scenario:
📥 Create project request received: {...}
⚠️ Validation failed: Missing required fields
eller
❌ Error in createProject service: [Error details]
🔍 Mulige Fejl og Løsninger
1. "Validation failed: Missing required fields"
Problem: projectName eller customerName mangler Løsning: Tjek at formData indeholder begge felter
2. "Database error: ER_NO_SUCH_TABLE"
Problem: customer_projects tabel findes ikke
Løsning:
mysql -u tilbudgivern_service -p tilbudgivern
SHOW TABLES LIKE 'customer_projects';
3. "Database error: ER_DUP_FIELDNAME"
Problem: Duplikeret kolonne navn Løsning: Tjek database schema matcher query
4. "Response is not JSON"
Problem: Server crashede eller returnerer HTML Løsning: Tjek backend logs for crash reason
5. NULL constraint violation
Problem: Required field sendt som null
Løsning: Service nu sender null for optional fields
📊 Database Schema
CREATE TABLE customer_projects (
id INT AUTO_INCREMENT PRIMARY KEY,
project_name VARCHAR(255) NOT NULL,
customer_name VARCHAR(255) NOT NULL,
customer_email VARCHAR(255),
customer_phone VARCHAR(50),
customer_address TEXT,
project_description TEXT,
project_status VARCHAR(50) DEFAULT 'draft',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
✅ Test Checklist
- Browser console åben (F12)
- Backend logs kører:
pm2 logs tilbudgivern-unified - Vælg kunde via Customer Search
- Indtast projekt navn (min 3 tegn)
- Tjek at customerName er auto-udfyldt
- Klik "Opret Projekt"
- Tjek console for success/error
- Tjek backend logs for details
- Verificer projekt blev oprettet (hvis success)
🎯 Næste Skridt
- Åbn applikationen i browser
- Åbn console (F12)
- Prøv at oprette projekt med data:
- Projekt navn: "Debug Test Projekt"
- Kunde: Vælg "Alexander Warme" fra søgning
- Del logs hvis der stadig er fejl:
- Console logs fra browser
- Backend logs fra
pm2 logs
💡 Tips
- Serveren er genstartet med nye ændringer
- Frontend er rebuilt med debug logging
- Alle logs er nu meget mere detaljerede
- Check både browser console OG backend logs