DEV Community

Cover image for Part 6: Introduction to Express.js – Simplifying Web Server Development in Node.js
Dipak Ahirav
Dipak Ahirav

Posted on

Part 6: Introduction to Express.js – Simplifying Web Server Development in Node.js

After learning how to build a basic web server using the native http module in Node.js, let's enhance our development process by introducing Express.js. Express is a popular web application framework for Node.js that simplifies routing, middleware, and many other web server features. In this part of the series, we'll explore how to set up an Express application and use its powerful features to handle web requests more efficiently.

What is Express.js?

Express.js is a minimalistic and flexible Node.js web application framework that provides a robust set of features to develop web and mobile applications. It facilitates the rapid development of Node.js based web applications and is known for its performance and minimal footprint.

Setting Up an Express Application

First, you need to install Express in your Node.js project. Assuming you have a Node.js project setup (if not, refer to Part 2 of this series), run the following command in your project directory:

npm install express
Enter fullscreen mode Exit fullscreen mode

Next, create a simple Express server:

app.js

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello World with Express!');
});

const PORT = 3000;
app.listen(PORT, () => {
  console.log(`Server running at http://localhost:${PORT}/`);
});
Enter fullscreen mode Exit fullscreen mode

This code sets up a basic web server that listens on port 3000 and responds with "Hello World with Express!" when you access the root URL.

Basic Routing with Express

Routing refers to determining how an application responds to a client's request to a particular endpoint, which is a URI (or path) and a specific HTTP request method (GET, POST, etc.).

// Respond to GET request on the root route (/), the application’s home page
app.get('/', (req, res) => {
  res.send('Welcome to the Home Page!');
});

// Respond to a POST request to the /submit route
app.post('/submit', (req, res) => {
  res.send('Form Submitted');
});

// Respond to a GET request to the /about page
app.get('/about', (req, res) => {
  res.send('About Us');
});
Enter fullscreen mode Exit fullscreen mode

Using Middleware

Middleware functions are functions that have access to the request object (req), the response object (res), and the next middleware function in the application’s request-response cycle. These functions can execute any code, modify the request and response objects, end the request-response cycle, and call the next middleware function.

app.use((req, res, next) => {
  console.log('Time:', Date.now());
  next();
});

app.get('/', (req, res) => {
  res.send('Middleware example');
});
Enter fullscreen mode Exit fullscreen mode

This middleware will log the current time for every request to the server.

Conclusion

Express.js simplifies the process of building server applications with Node.js. It not only makes handling requests easier with less boilerplate than the native http module but also provides powerful features like middleware handling, which can be used for executing any code, making changes to the request and response objects, ending the request-response cycle, and much more.

In the next part, we’ll delve into more advanced features of Express, including setting up routes for a sample application and integrating with databases.

Stay tuned as we continue to build on our foundational Express.js knowledge!

Top comments (5)

Collapse
 
anuj_rishu profile image
Anuj Rishu TIwari

Thanks for sharing

Collapse
 
dipakahirav profile image
Dipak Ahirav

👍

Collapse
 
devilstudio27 profile image
Sahil Thakur

Hello dipak, nice learning post, one thing i would like to add this after every part can u please add links of previous parts as it helps to navigate around such nice post.

Collapse
 
devilstudio27 profile image
Sahil Thakur • Edited

Ease of navigation around complete series... End of post might help to navigate to previous one's

Collapse
 
akinlabi_tobiabraham_859 profile image
Akinlabi Tobi Abraham

Thank you