Build an HTTP Server
How to build an HTTP server with Node.js
Here is the HTTP web server we used as the Node Hello World application in the Node.js introduction
const http = require('http')
const hostname = 'localhost'
const port = 3000
const server = http.createServer((req, res) => {
res.statusCode = 200
res.setHeader('Content-Type', 'text/plain')
res.end('Hello World\n')
})
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`)
})
Let’s analyze it briefly. We include the http module.
We use the module to create an HTTP server.
The server is set to listen on the specified hostname, localhost, on port 3000. When the server is ready, the listen callback function is called.
The callback function we pass is the one that’s going to be executed upon every request that comes in. Whenever a new request is received, the request event is called, providing two objects: a request (an http.IncomingMessage object) and a response (an http.ServerResponse object).
request provides the request details. Through it, we access the request headers and request data.
response is used to populate the data we’re going to return to the client.
In this case with
res.statusCode = 200
we set the statusCode property to 200, to indicate a successful response.
We also set the Content-Type header:
res.setHeader('Content-Type', 'text/plain')
and we end close the response, adding the content as an argument to end():
res.end('Hello World\n') download all my books for free
- javascript handbook
- typescript handbook
- css handbook
- node.js handbook
- astro handbook
- html handbook
- next.js pages router handbook
- alpine.js handbook
- htmx handbook
- react handbook
- sql handbook
- git cheat sheet
- laravel handbook
- express handbook
- swift handbook
- go handbook
- php handbook
- python handbook
- cli handbook
- c handbook
subscribe to my newsletter to get them
Terms: by subscribing to the newsletter you agree the following terms and conditions and privacy policy. The aim of the newsletter is to keep you up to date about new tutorials, new book releases or courses organized by Flavio. If you wish to unsubscribe from the newsletter, you can click the unsubscribe link that's present at the bottom of each email, anytime. I will not communicate/spread/publish or otherwise give away your address. Your email address is the only personal information collected, and it's only collected for the primary purpose of keeping you informed through the newsletter. It's stored in a secure server based in the EU. You can contact Flavio by emailing [email protected]. These terms and conditions are governed by the laws in force in Italy and you unconditionally submit to the jurisdiction of the courts of Italy.