Part 6: Introduction to Express.js – Simplifying Web Server Development in Node.js
Tags: node, javascript, typescript
Published: 2024-05-05 17:21:12

## 🚀 Check Out My YouTube Channel! 🚀
Hi everyone! If you enjoy my content here on Dev.to, please consider subscribing to my YouTube channel [devDive with Dipak](https://www.youtube.com/@DevDivewithDipak). I post practical full-stack development videos that complement my blog posts. Your support means a lot!

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:

```bash
npm install express
```

Next, create a simple Express server:

**app.js**
```javascript
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}/`);
});
```

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.).

```javascript
// 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');
});
```

#### 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.

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

app.get('/', (req, res) => {
  res.send('Middleware example');
});
```

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!