Menu
CoddyTech

Supprimer

Fait partie de la section API REST du Journey Node.js de Coddy. Leçon 4 sur 18.

Après une suppression, il ne reste rien à afficher au client. La réponse appropriée est 204 No Content : la requête a réussi et le corps est vide.

DELETE /api/events/5   →  204 No Content
DELETE /api/events/5   →  404 Not Found

La deuxième requête ne trouve aucun événement 5, elle renvoie donc 404, comme une requête GET pour un identifiant inconnu. Pour retirer un élément d’un tableau, trouvez sa position avec findIndex, qui renvoie -1 lorsqu’aucun élément ne correspond, puis supprimez-le avec splice :

events.splice(index, 1);   // supprimer 1 élément à l’index
res.status(204).end();     // un statut et aucun corps
challenge icon

Défi

Facile
  • DELETE /api/tasks/:id supprime la tâche et renvoie le code 204 sans corps de réponse.
  • Un identifiant inconnu renvoie le code 404 avec { "error": "Task not found" }.

Envoyez DELETE /api/tasks/3 deux fois, puis GET /api/tasks.

Essayez vous-même

import { Router } from 'express';
import { nextId, tasks } from '../store.js';

const router = Router();

router.get('/', (req, res) => {
    res.json(tasks);
});

router.get('/:id', (req, res) => {
    const task = tasks.find((t) => t.id === Number(req.params.id));
    if (!task) {
        return res.status(404).json({ error: 'Task not found' });
    }
    res.json(task);
});

router.post('/', (req, res) => {
    const { title } = req.body ?? {};
    if (!title) {
        return res.status(400).json({ error: 'title is required' });
    }
    const task = { id: nextId(), title, done: false, createdAt: new Date().toISOString() };
    tasks.push(task);
    res.status(201).location(`/api/tasks/${task.id}`).json(task);
});

router.patch('/:id', (req, res) => {
    const task = tasks.find((t) => t.id === Number(req.params.id));
    if (!task) {
        return res.status(404).json({ error: 'Task not found' });
    }
    const { title, done } = req.body ?? {};
    if (title !== undefined) task.title = title;
    if (done !== undefined) task.done = done;
    res.json(task);
});

export default router;

Toutes les leçons de API REST