Dies ist eine alte Version des Dokuments!


LU16b – UPDATE (PUT) & DELETE (DELETE) mit Express und Postman

  • Sie können einen bestehenden Post über PUT /api/posts/:id aktualisieren (Update).
  • Sie können einen bestehenden Post über DELETE /api/posts/:id löschen (Delete).
  • Sie wissen, wie Sie req.params.id (Route-Parameter) und req.body (Body-Daten) verwenden.
  • Sie verwenden passende HTTP-Statuscodes (200, 400, 404).
  • Sie können die Endpoints mit Postman testen.

Diese Learning Unit baut auf Ihrer LU16-Seite auf. Sie verwenden weiterhin das gleiche posts-Array (Dummy-Daten) und arbeiten ohne Datenbank.

Damit PUT und DELETE funktionieren, muss in Ihrem index.js weiterhin Folgendes vorhanden sein:

  • app.use(express.json()); (damit JSON aus dem Request-Body in req.body landet)
  • das Array posts mit Beispiel-Daten
  • die bereits erstellten Routes GET /api/posts, GET /api/posts/:id und POST /api/posts

Fügen Sie die folgenden Routen unterhalb Ihrer bisherigen Routen in index.js ein (die Reihenfolge ist nicht entscheidend, aber Übersicht hilft).

UPDATE – Post aktualisieren (PUT /api/posts/:id)

Mit PUT aktualisieren Sie einen bestehenden Datensatz. Der Client schickt dazu einen Request an:

  • /api/posts/:idid ist die post_id des Posts, der geändert werden soll.
  • Die neuen Werte werden als JSON im Request-Body mitgeschickt.

<WRAP box round center 80%> <code javascript> UPDATE – vorhandenen Post aktualisieren app.put('/api/posts/:id', (req, res) ⇒ { const id = Number(req.params.id); Post suchen

const post = posts.find(p => p.post_id === id);
if (!post) {
  return res.status(404).send('Post nicht gefunden');
}
// Neue Werte aus dem Body lesen
const userId = req.body.user_id;
const title = req.body.title;
const imageUrl = req.body.image_url;
const description = req.body.description;
const likes = req.body.likes;
// Validierung: mindestens ein Feld muss vorhanden sein
if (
  userId === undefined &&
  title === undefined &&
  imageUrl === undefined
  • modul/m290_guko/learningunits/lu16/theorie/b_update_delete.1766060106.txt.gz
  • Zuletzt geändert: 2025/12/18 13:15
  • von gkoch