Sequence NODE_250
Medium

Filter & Search Items via Query Params

Express.js
Node.js
Technical Specification

Enhance GET /items to support search by name (?q=) and filter by minPrice/maxPrice query params.

Input/Output Samples
Input:GET /items?q=pen
Output:Only items with 'pen' in name
Optimal Logic Path
app.get("/items", (req, res) => {
  const q = (req.query.q || "").toLowerCase();
  const min = req.query.minPrice ? Number(req.query.minPrice) : null;
  const max = req.query.maxPrice ? Number(req.query.maxPrice) : null;

  let list = items;
  if (q) list = list.filter((i) => i.name.toLowerCase().includes(q));
  if (min !== null) list = list.filter((i) => i.price >= min);
  if (max !== null) list = list.filter((i) => i.price <= max);

  res.json(list);
});
Architectural Deep-Dive
Query-based filtering is standard for list endpoints; combining search and numeric filters makes it flexible.