Building HTTP servers lets your computer talk to other devices over the internet. It helps deliver websites, apps, and data to users anywhere.
Why building HTTP servers matters in Node.js
Start learning this pattern below
Jump into concepts and practice - no test required
import http from 'node:http'; const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World!'); }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });
This code creates a simple HTTP server that listens on port 3000.
The server sends a plain text response saying 'Hello World!' to anyone who visits.
import http from 'node:http'; const server = http.createServer((req, res) => { res.end('Hi there!'); }); server.listen(8080);
import http from 'node:http'; const server = http.createServer((req, res) => { if (req.url === '/') { res.writeHead(200, {'Content-Type': 'text/html'}); res.end('<h1>Welcome Home</h1>'); } else { res.writeHead(404); res.end('Page not found'); } }); server.listen(5000);
This program creates a simple HTTP server that listens on port 3000. When you visit http://localhost:3000/ in your browser, it shows the text 'Hello World!'. The console logs a message to confirm the server is running.
import http from 'node:http'; const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World!'); }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });
HTTP servers are the backbone of the web, delivering content to browsers and apps.
Node.js makes it easy to create servers with just a few lines of code.
Always choose a port number above 1024 to avoid permission issues on your computer.
HTTP servers let your computer share information over the internet.
Node.js provides simple tools to build these servers quickly.
Understanding servers helps you create websites, apps, and APIs.
Practice
Solution
Step 1: Understand the role of HTTP servers
HTTP servers let computers send and receive information over the internet.Step 2: Connect this to Node.js usage
Node.js provides tools to build these servers so your app can communicate online.Final Answer:
It allows your computer to share information over the internet. -> Option CQuick Check:
HTTP servers = share info online [OK]
- Thinking HTTP servers speed up the computer
- Confusing servers with desktop app tools
- Believing servers fix code bugs automatically
Solution
Step 1: Identify modern Node.js import syntax
Node.js ES modules useimportto load modules, notrequire.Step 2: Check server creation and response method
http.createServerwithres.end()is correct;res.send()is not a Node.js method.Final Answer:
import http from 'http'; http.createServer((req, res) => res.end('Hello')).listen(3000); -> Option AQuick Check:
Use import + res.end() in Node.js 20+ [OK]
- Using require instead of import in ES modules
- Using res.send() which is not in Node.js core
- Trying to import with const and import() function
import http from 'http';
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Welcome!');
});
server.listen(3000);Solution
Step 1: Analyze server response setup
The server sets status code 200, sets Content-Type header, and ends response with 'Welcome!'.Step 2: Understand what client receives
The client will get a plain text response with 'Welcome!' and status 200.Final Answer:
Welcome! -> Option BQuick Check:
res.end('Welcome!') sends text response [OK]
- Thinking statusCode is invalid property
- Expecting undefined instead of response text
- Ignoring headers set by setHeader
import http from 'http';
const server = http.createServer((req, res) => {
res.write('Hello');
res.write('World');
res.end();
});
server.listen(3000);Solution
Step 1: Review usage of res.write and res.end
Node.js allows multiple res.write calls before res.end to send chunks.Step 2: Confirm res.end usage
Calling res.end() without argument is valid; it ends the response.Final Answer:
No error, code works fine -> Option AQuick Check:
Multiple res.write calls + res.end() is valid [OK]
- Thinking res.end must have argument
- Believing multiple res.write calls cause error
- Forgetting res.end is needed to finish response
Solution
Step 1: Set correct Content-Type for JSON
To send JSON, Content-Type must be 'application/json' so clients parse it properly.Step 2: Handle errors gracefully
Wrapping response code in try-catch prevents server crashes and sends error info.Final Answer:
Use http.createServer, set Content-Type to application/json, and wrap response code in try-catch. -> Option DQuick Check:
JSON needs correct header + error handling [OK]
- Sending JSON with wrong Content-Type
- Ignoring errors causing server crashes
- Using text/html header for JSON data
