DEV Community

Cover image for Day 40 of Learning MERN Stack
Ali Hamza
Ali Hamza

Posted on

Day 40 of Learning MERN Stack

Hello Dev Community! 👋

It is officially Day 40 of my continuous, unbroken streak toward mastering the MERN stack! Reaching Day 40 feels incredible. Yesterday, I was manually stitching data buffer chunks using Buffer.concat(). Today, I officially graduated from writing verbose, low-level native HTTP code and stepped into the golden gateway of backend frameworks: Express.js!

Following Prashant Sir's (Complete Coding) backend curriculum, today was all about understanding why Express exists and how it abstracts away the repetitive boilerplate of raw Node.js.


🧠 Key Learnings From Node.js Lecture 8 (Intro to Express)

Express.js is a minimal and flexible web application framework built on top of Node.js. Here is the technical breakdown of what I mastered today:

1. Eliminating the Boilerplate

In native Node, creating an HTTP server, parsing URLs, handling query parameters, and checking request methods requires nested if-else blocks and heavy event listeners. Express abstracts all of this into simple, readable methods.

2. Setting Up an Express App

I learned how to initialize a package, install Express via npm (npm install express), and spin up a structural server instance in just a few lines of code.

3. Elegant Method-Based Routing

Instead of checking if (req.url === '/about' && req.method === 'GET'), Express gives us intuitive, semantic routing hooks like app.get(), app.post(), app.put(), and app.delete().


javascript
const express = require("express");
const app = express();
const PORT = 8000;

// Express handles routing and content-type detection completely under the hood!
app.get("/", (req, res) => {
    res.send("Welcome to my very first Express.js server on Day 40!");
});

app.get("/about", (req, res) => {
    res.send("This is the elegant About page running without manual headers.");
});

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

Top comments (0)