AceDevHub
Beginner Node.js Interview QuestionsBeginnerPractical

Node.js · Question 27

How do you create a simple HTTP server in Node.js?

Direct answer

Call http.createServer(handler).listen(port) — the handler receives req and res for each request; set status and headers with writeHead, send body with end(), and keep the handler non-blocking.

Minimal server checklist

  1. Create server — http.createServer or http.Server with addListener('request').
  2. Route by method + url — if (req.method === 'GET' && req.url === '/health').
  3. Respond — writeHead(status, headers); res.end(body).
  4. Listen — server.listen(PORT, callback); bind 0.0.0.0 in Docker.
simple-server.mjs
import http from "node:http";

const PORT = Number(process.env.PORT) || 4000;

const server = http.createServer(async (req, res) => {
  if (req.url === "/" && req.method === "GET") {
    res.writeHead(200, { "Content-Type": "text/plain" });
    res.end("AceDevHub API shell\n");
    return;
  }

  res.writeHead(405, { "Allow": "GET" });
  res.end("Method Not Allowed");
});

server.listen(PORT, () => {
  console.log(`Listening on http://localhost:${PORT}`);
});