Creating a Basic HTTP Server with Node.js

If you are new to web development and want to understand how to create a simple server to handle HTTP requests, you're in the right place. In this article, we will explore how to create a basic HTTP server using Node.js, a popular runtime environment for executing JavaScript code on the server-side.


Before we dive into creating an HTTP server, make sure you have Node.js installed on your machine. You can download and install Node.js from the official website ( Once installed, you can verify the installation by opening your command prompt or terminal and running the following command:

node -v

If you see a version number printed on your terminal, you're good to go!

Setting Up the Project

First, we need to set up a new Node.js project. Open your preferred code editor and follow these steps:

  1. Create a new directory for your project.
  2. Open a terminal or command prompt and navigate to the project directory.
  3. Run the following command to initialize a new Node.js project:
npm init -y

This command will create a package.json file, which manages dependencies and project settings.

Installing Required Packages

To create an HTTP server, we need to install the http module provided by Node.js. In your terminal, run the following command:

npm install http

This will install the http module locally, and it will be listed as a dependency in your package.json file.

Implementing the Server

Now that we have set up the project and installed the required module, let's create a new file called server.js in your project directory and open it in your code editor. We will write our server code in this file.

In server.js, start by importing the http module:

const http = require('http');

Next, we will define the port number on which our server will listen to incoming HTTP requests. You can choose any available port number. Here, we will use port 3000 as an example:

const port = 3000;

Now, let's implement the server functionality using the createServer method provided by the http module:

const server = http.createServer((request, response) => {
  // Handle incoming requests here

Inside the provided callback function, you can add logic to handle incoming requests. For example, to send a simple "Hello, World!" response, you can add the following code:

const server = http.createServer((request, response) => {
  response.statusCode = 200;
  response.setHeader('Content-Type', 'text/plain');
  response.end('Hello, World!\n');

Finally, start the server and make it listen to incoming requests on the specified port:

server.listen(port, () => {
  console.log(`Server running at http://localhost:${port}/`);

Testing the Server

To test our server, open your terminal or command prompt, navigate to the project directory, and run the following command:

node server.js

If everything is set up correctly, you should see the message Server running at http://localhost:3000/ printed on your terminal.

Open your web browser and visit http://localhost:3000/. You should see the message "Hello, World!" displayed on the page.

Congratulations! You have successfully created a basic HTTP server using Node.js.


In this article, we have learned how to create a simple HTTP server using Node.js. We covered the process of setting up a new Node.js project, installing the necessary packages, and implemented a basic server with request handling. This is just the beginning of what you can achieve using Node.js, and you can now build more complex server applications as you progress in your web development journey. Happy coding!

noob to master © copyleft