ExpressJS challenges

Practice problem statements with input format, output format, constraints and solutions.

beginner

Express Introduction challenge

Build a small solution that uses Express Introduction in ExpressJS and handles one normal case plus one edge case.

Input format

Use a short text value, array, query, or sample object depending on the topic.

Output format

Print, render, or return the processed result in a readable format.

Constraints

  • Keep the solution under 60 lines.
  • Use descriptive names.
  • Do not depend on hidden external services.

Starter code

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/express-introduction", (req, res) => res.json({ success: true, processed: req.body }));

Test cases

  • basic sample - valid processed result
  • empty or small sample - safe fallback result

Hint

Focus on the core express introduction pattern before polishing the final output.

Solution

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/express-introduction-solution", (req, res) => res.json({ success: true, processed: req.body }));
beginner

Express Setup challenge

Build a small solution that uses Express Setup in ExpressJS and handles one normal case plus one edge case.

Input format

Use a short text value, array, query, or sample object depending on the topic.

Output format

Print, render, or return the processed result in a readable format.

Constraints

  • Keep the solution under 60 lines.
  • Use descriptive names.
  • Do not depend on hidden external services.

Starter code

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/express-setup", (req, res) => res.json({ success: true, processed: req.body }));

Test cases

  • basic sample - valid processed result
  • empty or small sample - safe fallback result

Hint

Focus on the core express setup pattern before polishing the final output.

Solution

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/express-setup-solution", (req, res) => res.json({ success: true, processed: req.body }));
beginner

Basic Routing challenge

Build a small solution that uses Basic Routing in ExpressJS and handles one normal case plus one edge case.

Input format

Use a short text value, array, query, or sample object depending on the topic.

Output format

Print, render, or return the processed result in a readable format.

Constraints

  • Keep the solution under 60 lines.
  • Use descriptive names.
  • Do not depend on hidden external services.

Starter code

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/basic-routing", (req, res) => res.json({ success: true, processed: req.body }));

Test cases

  • basic sample - valid processed result
  • empty or small sample - safe fallback result

Hint

Focus on the core basic routing pattern before polishing the final output.

Solution

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/basic-routing-solution", (req, res) => res.json({ success: true, processed: req.body }));
beginner

Request and Response challenge

Build a small solution that uses Request and Response in ExpressJS and handles one normal case plus one edge case.

Input format

Use a short text value, array, query, or sample object depending on the topic.

Output format

Print, render, or return the processed result in a readable format.

Constraints

  • Keep the solution under 60 lines.
  • Use descriptive names.
  • Do not depend on hidden external services.

Starter code

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/request-and-response", (req, res) => res.json({ success: true, processed: req.body }));

Test cases

  • basic sample - valid processed result
  • empty or small sample - safe fallback result

Hint

Focus on the core request and response pattern before polishing the final output.

Solution

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/request-and-response-solution", (req, res) => res.json({ success: true, processed: req.body }));
beginner

Express Middleware challenge

Build a small solution that uses Express Middleware in ExpressJS and handles one normal case plus one edge case.

Input format

Use a short text value, array, query, or sample object depending on the topic.

Output format

Print, render, or return the processed result in a readable format.

Constraints

  • Keep the solution under 60 lines.
  • Use descriptive names.
  • Do not depend on hidden external services.

Starter code

app.use((req, res, next) => {
  console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
  next();
});

Test cases

  • basic sample - valid processed result
  • empty or small sample - safe fallback result

Hint

Focus on the core express middleware pattern before polishing the final output.

Solution

app.use((req, res, next) => {
  console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
  next();
});
beginner

Serving Static Files challenge

Build a small solution that uses Serving Static Files in ExpressJS and handles one normal case plus one edge case.

Input format

Use a short text value, array, query, or sample object depending on the topic.

Output format

Print, render, or return the processed result in a readable format.

Constraints

  • Keep the solution under 60 lines.
  • Use descriptive names.
  • Do not depend on hidden external services.

Starter code

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/serving-static-files", (req, res) => res.json({ success: true, processed: req.body }));

Test cases

  • basic sample - valid processed result
  • empty or small sample - safe fallback result

Hint

Focus on the core serving static files pattern before polishing the final output.

Solution

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/serving-static-files-solution", (req, res) => res.json({ success: true, processed: req.body }));
beginner

JSON Parsing challenge

Build a small solution that uses JSON Parsing in ExpressJS and handles one normal case plus one edge case.

Input format

Use a short text value, array, query, or sample object depending on the topic.

Output format

Print, render, or return the processed result in a readable format.

Constraints

  • Keep the solution under 60 lines.
  • Use descriptive names.
  • Do not depend on hidden external services.

Starter code

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/json-parsing", (req, res) => res.json({ success: true, processed: req.body }));

Test cases

  • basic sample - valid processed result
  • empty or small sample - safe fallback result

Hint

Focus on the core json parsing pattern before polishing the final output.

Solution

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/json-parsing-solution", (req, res) => res.json({ success: true, processed: req.body }));
beginner

URL Parameters challenge

Build a small solution that uses URL Parameters in ExpressJS and handles one normal case plus one edge case.

Input format

Use a short text value, array, query, or sample object depending on the topic.

Output format

Print, render, or return the processed result in a readable format.

Constraints

  • Keep the solution under 60 lines.
  • Use descriptive names.
  • Do not depend on hidden external services.

Starter code

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/url-parameters", (req, res) => res.json({ success: true, processed: req.body }));

Test cases

  • basic sample - valid processed result
  • empty or small sample - safe fallback result

Hint

Focus on the core url parameters pattern before polishing the final output.

Solution

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/url-parameters-solution", (req, res) => res.json({ success: true, processed: req.body }));
beginner

Query Strings challenge

Build a small solution that uses Query Strings in ExpressJS and handles one normal case plus one edge case.

Input format

Use a short text value, array, query, or sample object depending on the topic.

Output format

Print, render, or return the processed result in a readable format.

Constraints

  • Keep the solution under 60 lines.
  • Use descriptive names.
  • Do not depend on hidden external services.

Starter code

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/query-strings", (req, res) => res.json({ success: true, processed: req.body }));

Test cases

  • basic sample - valid processed result
  • empty or small sample - safe fallback result

Hint

Focus on the core query strings pattern before polishing the final output.

Solution

import express from "express";
const app = express();
app.use(express.json());
app.post("/api/query-strings-solution", (req, res) => res.json({ success: true, processed: req.body }));
beginner

Router Module challenge

Build a small solution that uses Router Module in ExpressJS and handles one normal case plus one edge case.

Input format

Use a short text value, array, query, or sample object depending on the topic.

Output format

Print, render, or return the processed result in a readable format.

Constraints

  • Keep the solution under 60 lines.
  • Use descriptive names.
  • Do not depend on hidden external services.

Starter code

import express from "express";
const app = express();
app.get("/api/orders", (req, res) => {
  res.json({ id: 42, total: 59, status: "paid" });
});

Test cases

  • basic sample - valid processed result
  • empty or small sample - safe fallback result

Hint

Focus on the core router module pattern before polishing the final output.

Solution

import express from "express";
const app = express();
app.get("/api/orders", (req, res) => {
  res.json({ id: 42, total: 59, status: "paid" });
});