Node.js: Building an advanced MVC-like project architecture

Learn how to develop a custom MVC-like Node app structure for more complex projects.

By enrolling and finishing this course you will learn more about structuring and organizing your Node application. Throughout the course, we will be building a custom MVC-like structure and adding various coding patterns along the way.

What you’ll learn

  • Architect Node application in a more modular way.
  • Create a custom MVC-like structure.
  • Code separation philosophy.
  • Code maintainability.

Course Content

  • Installing and configuring Node –> 5 lectures • 9min.
  • Creating a server and router –> 5 lectures • 39min.
  • Database, sequelize, and user model –> 3 lectures • 25min.
  • Authentication, exceptions, repositories, and services –> 6 lectures • 43min.
  • Repositories, services –> 6 lectures • 46min.
  • Middleware –> 4 lectures • 31min.
  • Validation –> 3 lectures • 15min.
  • Sending emails and rendering views –> 5 lectures • 47min.
  • Scheduler and Logger –> 5 lectures • 43min.
  • Adding missing parts and leftovers –> 5 lectures • 23min.
  • Uploading files –> 5 lectures • 37min.
  • WebSocket –> 5 lectures • 43min.
  • Conclusion –> 1 lecture • 1min.

Auto Draft

Requirements

  • Basic understanding of Javascript (functions, callbacks, objects, promises, ES6+).
  • Understanding of Node or experience building backend with other programming languages.

By enrolling and finishing this course you will learn more about structuring and organizing your Node application. Throughout the course, we will be building a custom MVC-like structure and adding various coding patterns along the way.

This course is aimed at students who have at least some experience with Node or have built applications with other backend languages as we are not covering any of the programming or Node-related basics.

You can pick some other Node beginner course and then come back later here to learn some more advanced architectural approaches.

 

Here are, summarized, some of the things you will learn throughout this course.

 

  1. Custom server and router class
    • You will learn how to create a custom and configurable server and router class that will bootstrap all of the code dependencies necessary to run your application.
    • We will create a schema-based routing system for easy management of app routes.

     

  2. Models, Controllers, Repositories, Services
    • We will start working on our MVC pattern and try to logically separate code responsibilities within our application.
    • We will take a look at how repositories and services can be utilized to outsource some of our SQL and business logic.

     

  3. Middleware and Validation
    • You will learn how to create middleware and limit some of your routes to only auth users.
    • We will also take a look at how to perform form validation when users are submitting data.
    • We will implement custom file parsing when users are uploading documents with form data.

     

  4. Sending emails
    • We will implement a custom and configurable mailer module.

     

  5. Scheduled functions CRON
    • We will take a look at how to create a scheduler that will execute some tasks based on predefined time intervals.

     

  6. Logger
    • Logging is very important for looking at the state of your running application. That is why we will create a custom logger and expose some API to get application-level logs.
  1. Implementing WebSockets
    • We will implement WebSockets into our app to facilitate real-time operations.