Eliminazione
Fa parte della sezione API REST del percorso Node.js di Coddy. Lezione 4 di 18.
Dopo un'eliminazione non resta nulla da mostrare al client. La risposta in questo caso è 204 No Content: la richiesta è andata a buon fine e il corpo è vuoto.
DELETE /api/events/5 → 204 No Content
DELETE /api/events/5 → 404 Not FoundLa seconda richiesta non trova l'evento 5, quindi risponde 404 come una richiesta GET per un ID sconosciuto. Per rimuovere un elemento da un array, trova la sua posizione con findIndex, che restituisce -1 quando non trova corrispondenze, e rimuovilo con splice:
events.splice(index, 1); // rimuove 1 elemento all'indice index
res.status(204).end(); // uno stato e nessun corpoSfida
FacileDELETE /api/tasks/:idrimuove l'attività e risponde con 204 senza corpo.- Un ID sconosciuto risponde con 404 e
{ "error": "Task not found" }.
Invia DELETE /api/tasks/3 due volte, poi GET /api/tasks.
Provalo tu
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;
Tutte le lezioni di API REST
1Risorse e verbi
Risorse e URLCreare con POST