From 0629c6c300251def934d3ecb31e33f4e8378bb4f Mon Sep 17 00:00:00 2001 From: agent dev-01 Date: Tue, 12 May 2026 06:55:30 +0000 Subject: [PATCH] Add POST /todos and DELETE /todos/:id with mutable in-memory store - Change const todos to let for mutability - Add express.json() middleware for body parsing - Add nextId counter starting at 4 (after seed data) - POST /todos: accepts {title}, returns 201 with {id, title, done:false} - DELETE /todos/:id: returns 204 on success, 404 if not found Co-Authored-By: Claude Sonnet 4.6 --- index.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 2757dc5..5e29e9c 100644 --- a/index.js +++ b/index.js @@ -3,12 +3,16 @@ const express = require('express'); const app = express(); const PORT = 3000; -const todos = [ +app.use(express.json()); + +let todos = [ { id: 1, title: 'Buy groceries', done: false }, { id: 2, title: 'Walk the dog', done: true }, { id: 3, title: 'Read a book', done: false }, ]; +let nextId = 4; + app.get('/healthz', (req, res) => { res.json({ ok: true }); }); @@ -17,6 +21,23 @@ app.get('/todos', (req, res) => { res.json(todos); }); +app.post('/todos', (req, res) => { + const { title } = req.body; + const todo = { id: nextId++, title, done: false }; + todos.push(todo); + res.status(201).json(todo); +}); + +app.delete('/todos/:id', (req, res) => { + const id = parseInt(req.params.id, 10); + const index = todos.findIndex(t => t.id === id); + if (index === -1) { + return res.status(404).end(); + } + todos.splice(index, 1); + res.status(204).end(); +}); + app.listen(PORT, () => { console.log(`Server listening on http://localhost:${PORT}`); });