Sequence NODE_242
Medium

Create JSON CRUD Endpoints for In-Memory Items

Express.js
Node.js
Technical Specification

Build /items endpoints: GET all, GET by id, POST create, PUT update, DELETE remove using an in-memory array.

Input/Output Samples
Input:POST /items {name:'Pen'}
Output:201 + created item with id
Optimal Logic Path
const express = require("express");
const app = express();
app.use(express.json());

let items = [];
let nextId = 1;

app.get("/items", (req, res) => {
  res.json(items);
});

app.get("/items/:id", (req, res) => {
  const item = items.find((i) => i.id === Number(req.params.id));
  if (!item) return res.status(404).json({ error: "Not found" });
  res.json(item);
});

app.post("/items", (req, res) => {
  const item = { id: nextId++, name: req.body.name };
  items.push(item);
  res.status(201).json(item);
});

app.put("/items/:id", (req, res) => {
  const item = items.find((i) => i.id === Number(req.params.id));
  if (!item) return res.status(404).json({ error: "Not found" });
  item.name = req.body.name;
  res.json(item);
});

app.delete("/items/:id", (req, res) => {
  items = items.filter((i) => i.id !== Number(req.params.id));
  res.status(204).end();
});
Architectural Deep-Dive
We use express.json for body parsing and implement RESTful handlers with appropriate methods and status codes.