logo
Cover image for Introduction to the MERN Stack: Everything You Need to Know

Introduction to the MERN Stack: Everything You Need to Know

The MERN Handbook Part 2: Understanding the MERN Stack

Ahammad kabeer

Ahammad kabeer

21 May 2024

·

5 min read

Welcome back to "The MERN Handbook." In this second edition, we’ll dive into the MERN stack, its components, their roles, and the historical context that makes the MERN stack relevant in modern web development. We'll also cover how to set up your development environment, ensuring you're ready to start coding.

What is the MERN Stack?

The MERN stack is a combination of four powerful technologies used to build full-stack web applications. It includes:

  1. MongoDB: A NoSQL database that stores data in a flexible, JSON-like format.

  2. Express.js: A web application framework for Node.js, used to build the backend and handle HTTP requests and responses.

  3. React.js: A JavaScript library for building user interfaces, particularly single-page applications where you can dynamically update data without reloading the page.

  4. Node.js: A JavaScript runtime that allows you to run JavaScript on the server side, outside the browser.

Roles of Each Component

  • MongoDB: Acts as the database where data is stored and retrieved. Its NoSQL nature allows for flexible and scalable data storage, ideal for modern web applications that require quick iterations and changes.

  • Express.js: Serves as the backend framework that handles the application logic, routing, and integration with MongoDB. It simplifies server-side coding and improves efficiency.

  • React.js: Provides a component-based architecture for the frontend, allowing developers to create reusable UI components and manage application state effectively.

  • Node.js: Powers the server-side code, enabling fast and scalable network applications. It uses an event-driven, non-blocking I/O model, making it efficient and suitable for real-time applications.

Historical Context and Relevance

The MERN stack emerged as a popular choice for web development due to its efficiency, flexibility, and JavaScript's dominance in both frontend and backend development. Here’s a brief historical context:

  • JavaScript's Evolution: Initially, JavaScript was primarily used for client-side scripting. However, with the advent of Node.js in 2009, it became possible to use JavaScript on the server side, leading to the development of full-stack JavaScript applications.

  • Rise of NoSQL Databases: MongoDB, introduced in 2009, provided a solution to the limitations of traditional SQL databases. Its schema-less design and JSON-like document storage aligned perfectly with JavaScript applications, making it a natural fit for the stack.

  • Single-Page Applications (SPAs): React.js, developed by Facebook in 2013, revolutionized the way UIs are built with its component-based approach and efficient virtual DOM. It enabled the creation of SPAs, where the entire application runs on a single web page, enhancing user experience.

  • Framework Integration: Express.js, released in 2010, became a popular choice for building web applications with Node.js due to its minimalistic and unopinionated framework, allowing developers to structure their applications as they see fit.

The MERN stack's relevance in modern web development stems from its unified language approach (JavaScript) across the entire stack, flexibility, and scalability. It supports the rapid development and deployment of web applications, making it ideal for startups and large enterprises alike.

Setting Up Your Development Environment

Before we dive into coding, let's set up the development environment. Here are the steps:

  1. Install Node.js and npm: Node.js is required to run JavaScript on the server side, and npm (Node Package Manager) is used to manage packages and dependencies.

    • Download and install Node.js from the official website.

    • Verify the installation by running the following commands in your terminal:

        node -v
        npm -v
      
  2. Set Up MongoDB: You can either install MongoDB locally or use a cloud service like MongoDB Atlas.

    • For local installation, download MongoDB from the official website.

    • For MongoDB Atlas, sign up and create a free cluster here.

  3. Install a Code Editor: A good code editor enhances productivity. Popular choices include Visual Studio Code (VSCode), Sublime Text, and Atom.

  4. Install Git: Version control is crucial for tracking changes and collaborating with others.

    • Download and install Git from the official website.

    • Set up Git by configuring your username and email:

        git config --global user.name "Your Name"
        git config --global user.email "your.email@example.com"
      
  5. Set Up a Project Directory: Create a directory for your MERN projects.

     mkdir mern-handbook
     cd mern-handbook
    
  6. Initialize a Git Repository: Initialize a Git repository in your project directory.

     git init
    
  7. Install Essential npm Packages: Start by creating a package.json file and installing essential packages like Express.

     npm init -y
     npm install express mongoose
    
  8. Set Up React with Vite: Vite is a modern build tool that provides a faster and leaner development experience for modern web projects.

    1. Install Vite and create a new React project:

       npm init vite@latest my-react-app -- --template react
       cd my-react-app
       npm install
      
  9. Run Your React App: Start the development server to ensure everything is set up correctly.

     npm run dev
    

With your development environment set up, you're ready to start building applications with the MERN stack. In the next edition, we’ll delve into the fundamentals of JavaScript, focusing on its async nature and how it powers modern web applications.


💡
For those who want immediate results and tailored guidance, I offer an on-demand mentorship program. This program is perfect for learners who seek personalized advice, quicker progress, and hands-on support. You can book a session with me with this link.

Resources for Further Learning


Feel free to leave comments, ask questions, and share your progress. Happy coding!

Subscribe to our newsletter

Stay up to date with new article on full-stack development topics on every wednesday!