Sicherheits-, Stabilitaets- und Domainkorrekturen nach vollstaendiger Pruefung
Build & Deploy / deploy (push) Waiting to run

- Absturzsicherheit: Express 4 faengt Fehler aus async-Handlern nicht ab, eine
  einzige fehlerhafte Anfrage konnte den ganzen Shop beenden - besonders heikel
  bei capture-order, wo das direkt nach der PayPal-Abbuchung passieren wuerde.
  Neu: lib/async-wrap.js um alle Handler, zentraler Fehler-Handler in index.js,
  .catch(next) in der Zugangsschranke, unhandledRejection/uncaughtException-Netz.
- Fehlerhaftes JSON lieferte bisher Express' HTML-Fehlerseite mit komplettem
  Stacktrace und Serverpfaden (weil NODE_ENV nicht gesetzt war). Jetzt saubere
  JSON-Antwort, NODE_ENV=production in .env.example ergaenzt.
- Sicherheits-Header und x-powered-by wie bei der DogFather-Seite.
- Falsche Domain .de statt .com korrigiert: astro.config.mjs (betraf alle
  Canonical-URLs und die komplette Sitemap), robots.txt, Layout.astro sowie den
  Verwaltungs-Link in jeder Bestellbenachrichtigung (war ein toter Link).
- Fehlende Uebersetzung nav.cart in EN/CH/FR ergaenzt: das Warenkorb-Symbol hatte
  in drei von vier Sprachen keinen Namen fuer Screenreader.
This commit is contained in:
qcigano
2026-08-05 22:33:49 +02:00
parent 654f4455cc
commit ab3a5da892
14 changed files with 94 additions and 28 deletions
+3 -2
View File
@@ -5,11 +5,12 @@
===================================================================== */
import { Router } from "express";
import { wrap } from "../lib/async-wrap.js";
import { erstelleBestellung } from "../lib/bestellung-erstellen.js";
export const ordersRouter = Router();
ordersRouter.post("/api/orders", async (req, res) => {
ordersRouter.post("/api/orders", wrap(async (req, res) => {
const body = req.body || {};
const zahlungsart = String(body.zahlungsart || "");
@@ -28,4 +29,4 @@ ordersRouter.post("/api/orders", async (req, res) => {
return res.status(ergebnis.httpStatus || 500).json({ ok: false, error: ergebnis.error });
}
return res.status(201).json({ ok: true, id: ergebnis.id, bestellnummer: ergebnis.bestellnummer });
});
}));