Node.js: Building an advanced MVC-like project architecture
What you'll learn
- Architect Node application in a more modular way
- Create a custom MVC-like structure
- Code separation philosophy
- Code maintainability
Requirements
- Basic understanding of Javascript (functions, callbacks, objects, promises, ES6+)
- Understanding of Node or experience building backend with other programming languages
Description
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.
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.
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.
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.
Sending emails
We will implement a custom and configurable mailer module.
Scheduled functions CRON
We will take a look at how to create a scheduler that will execute some tasks based on predefined time intervals.
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.
Implementing WebSockets
We will implement WebSockets into our app to facilitate real-time operations.
Who this course is for:
- Node developers interested in alternative MVC-like application structure
Instructor
Hi, I’m Dino. I am a full-stack software developer with a strong passion to learn new exciting things and share knowledge.
I have started my programming journey whilst being a freshman at university. Never would I have thought that I’d love it so much. So far, I have freelanced, worked remotely, worked with friends, worked alone.
Currently, full time employed at a fantastic company writing Laravel, Node, React, and Vue applications. I enjoy the diversity that these various technologies bring and all the possible ways that you can advance that they bring.
I’d love to see you coming on this programming adventure together with me.