Angular & NodeJS - The MEAN Stack Guide
Learn how to connect your Angular frontend to a NodeJS & Express & MongoDB backend by building a real application
Start courseCreate modern, scalable and high-speed Web Applications with Angular (formerly named Angular 2, now just "Angular") and Node.js + Express + MongoDB.
Angular 1 and NodeJS, together with ExpressJS (a NodeJS Framework) and MongoDB formed the very popular MEAN stack. Now is the time to dive into MEAN 2.0 and replace Angular 1 with Angular 2+.
Benefit from the many improvements and advantages Angular offers you: Speed, ease of development, highly reactive, awesome support for asynchronous operations, great scalability and more!
And combine these advantages with the power of a NodeJS + Express + MongoDB backend!
Learn or refresh the Angular basics!
This course is no Angular course, but it includes detailed explanations of the core concepts used as well as about Angular in general. However, keep in mind that, as this course is no Angular course, having additional resources like my "Angular - The Complete Guide" course is recommended.
In this course, I (Maximilian), an experienced web developer as well as author of many top-rated courses and host of the "Academind" coding channel on YouTube, will take you on a hands-on journey to get you to build your own Angular + NodeJS applications in no time.
This course follows a hands-on approach, which means that the whole course is structured around one big application and the different concepts will be explained detailedly as they are introduced in this application.
Specifically, you will learn how to:
- Set up a NodeJS + Express + MongoDB + Angular Application with the help of the Angular CLI
- Use NodeJS and Express efficiently
- Build reusable Components in Angular and create a reactive User Experience with the Tools provided by Angular
- Connect your NodeJS (or any other language!) backend with your Angular App through Angular’s HttpClient service
- Provide appropriate endpoints on your Backend, for your Frontend to consume
- Add advanced features like file upload and pagination
- Make your Application more secure by implementing Users, Authentication as well as Authorization
- Handle Errors gracefully
- And much more...!
This hands-on concept allows you to not get stuck in the theory, but instantly see real implementation examples!
Don’t stop at the basics!
Do you know those courses which show you a "Hello World“ example and then call it an end? That won’t happen to you in this course. While beginning with a very basic app and basic features, you will quickly be able to incorporate many different features like Routes, Observables, Events, Authentication and Authorization, Error Handling and much more into your applications.
The best thing is: You’ll learn all that by putting it into practice immediately! No wall of powerpoint slides, no unrealistic mini-examples – this is the real deal!
Course content
Section 1Getting Started
- Introduction1:54
- What is MEAN?10:35
- What is a Single Page Application (SPA)?2:08
- How Does the MEAN Stack Work?2:58
- Installing Node & the Angular CLI7:50
- Join our Online Learning Community1:00
- Installing our IDE3:13
- Exploring the Project Structure4:02
- Course Outline3:27
- How To Get The Most Out Of This Course2:47
- Section Resources1:00
Section 2The Angular Frontend - Understanding the Basics
- Module IntroductionPremium1:40
- Understanding the Folder StructurePremium6:40
- Understanding Angular ComponentsPremium2:39
- Adding our First ComponentPremium8:01
- Listening to EventsPremium3:43
- Outputting ContentPremium5:34
- Getting User InputPremium6:03
- Installing Angular MaterialPremium15:34
- Adding a ToolbarPremium3:57
- Outputting PostsPremium6:37
- Diving Into Structural DirectivesPremium5:40
- Creating Posts with Property & Event BindingPremium7:38
- Creating a Post ModelPremium4:35
- Adding FormsPremium8:18
- Getting Posts from Post-Create to Post-ListPremium9:26
- Calling GET PostPremium11:14
- More About ObservablesPremium5:51
- Working on our FormPremium3:51
- Section ResourcesPremium1:00
Section 3Adding NodeJS to our Project
- Module IntroductionPremium2:03
- Connecting Node & Angular - Theory4:37
- What is a RESTful API?4:45
- Adding the Node BackendPremium8:20
- Adding the Express FrameworkPremium7:37
- Improving the server.js CodePremium4:40
- Fetching Initial PostsPremium5:57
- Using the Angular HTTP ClientPremium9:20
- Understanding CORSPremium5:31
- Adding the POST Backend PointPremium5:27
- Adding AngularPremium5:07
- Section ResourcesPremium1:00
Section 4Working with MongoDB
- Module IntroductionPremium1:04
- What is MongoDB?Premium1:48
- Comparing SQL & NoSQLPremium4:26
- Connecting Angular to a DatabasePremium2:07
- Setting Up MongoDBPremium5:14
- Adding MongoosePremium3:01
- Understanding Mongoose Schemas & ModelsPremium5:45
- Creating a POST InstancePremium4:08
- Connecting our Node Express App to MongoDBPremium3:10
- Storing Data in a DatabasePremium5:51
- Fetching Data From a DatabasePremium5:34
- Transforming Response DataPremium5:07
- Deleting DocumentsPremium7:37
- Updating the Frontend after Deleting PostsPremium3:02
- Adding Posts with an IDPremium7:07
- Section ResourcesPremium1:00
Section 5Enhancing the App
- Module IntroductionPremium1:11
- Adding RoutingPremium10:12
- Styling LinksPremium3:59
- Client Side vs Server Side RoutingPremium2:44
- Creating the "Edit" FormPremium10:38
- Finishing the Edit FeaturePremium11:09
- Updating Posts on the ServerPremium9:21
- Re-Organizing Backend RoutesPremium5:54
- Adding Loading SpinnersPremium9:05
- Section ResourcesPremium1:00
Section 6Adding Image Uploads to our App
- Module IntroductionPremium0:44
- Adding the File Input ButtonPremium4:51
- Converting the Form from a Template Driven to a Reactive ApproachPremium13:41
- Adding Image Controls to Store the ImagePremium6:59
- Adding an Image PreviewPremium4:58
- Starting with the Mime-Type ValidatorPremium8:20
- Finishing the Image ValidatorPremium7:17
- Adding Server Side UploadPremium8:23
- Uploading FilesPremium6:05
- Working with the File URLPremium6:18
- Fetching Images on the FrontendPremium6:37
- Updating Posts with ImagesPremium13:20
- Wrap UpPremium0:54
- Section ResourcesPremium1:00
Section 7Adding Pagination
- Module IntroductionPremium1:04
- Adding the Pagination ComponentPremium7:18
- Working on the Pagination BackendPremium8:08
- Connecting the Angular Paginator to the BackendPremium5:24
- Fetching Posts CorrectlyPremium6:09
- Finishing TouchesPremium4:48
- Section ResourcesPremium1:00
Section 8Adding User Authentication
- Module IntroductionPremium0:59
- Adding the Login Input FieldsPremium8:15
- Handling User InputPremium3:42
- Adding the Signup ScreenPremium3:32
- Creating the User ModelPremium6:23
- Creating a New User Upon RequestPremium5:30
- Connecting Angular to the BackendPremium6:38
- Understanding SPA AuthenticationPremium3:39
- Implementing SPA AuthenticationPremium9:32
- Sending the Token to the FrontendPremium5:43
- Adding Middleware to Protect RoutesPremium11:47
- Adding the Token to Authenticate RequestsPremium13:45
- Improving the UI Header to Reflect the Authentication StatusPremium7:23
- Improving the UI Messages to Reflect the Authentication StatusPremium6:19
- Connecting the Logout Button to the Authentication StatusPremium2:32
- Redirecting UsersPremium4:25
- Adding Route GuardsPremium6:48
- Reflecting the Token Expiration in the UIPremium6:12
- Saving the Token in the Local StoragePremium15:54
- Section ResourcesPremium1:00
Section 9Authorization
- Module IntroductionPremium1:09
- Adding a Reference to the ModelPremium3:28
- Adding the User ID to PostsPremium7:02
- Protecting Resources with AuthorizationPremium8:19
- Passing the User ID to the FrontendPremium7:24
- Using the User ID on the FrontendPremium5:11
- Section ResourcesPremium1:00
Section 10Handling Errors
- Module IntroductionPremium1:14
- Testing Different Places to Handle ErrorsPremium9:49
- The Error InterceptorPremium8:01
- Displaying the Basic Error DialogPremium5:13
- Adding an Error DialogPremium5:26
- Returning Error Messages on the ServerPremium7:10
- Finishing TouchesPremium3:03
- Section ResourcesPremium1:00
Section 11Optimizations
- Module IntroductionPremium0:34
- Using ControllersPremium8:16
- Separating the MiddlewarePremium3:30
- Creating an Angular Material ModulePremium4:20
- Splitting the App Into Feature ModulesPremium5:14
- Fixing an Update BugPremium2:31
- Creating the Auth ModulePremium4:08
- Adding Lazy LoadingPremium9:35
- Fixing the Auth GuardPremium1:00
- Using a Global Angular ConfigPremium6:18
- Using Node Environment VariablesPremium5:26
- Section ResourcesPremium1:00
Section 12Deploying our App
- Module IntroductionPremium0:40
- Deployment OptionsPremium3:59
- Deploying the REST ApiPremium13:34
- Angular Deployment - Finishing the Two App SetupPremium9:51
- Using the Integrated ApproachPremium9:37
- Section ResourcesPremium1:00
Section 13Course Roundup
- RoundupPremium2:05
Course instructor
Maximilian Schwarzmüller
As a self-taught professional I really know the hard parts and the difficult topics when learning new or improving on already-known languages. This background and experience enable me to focus on the most relevant key concepts and topics. My track record of many 5-star rated courses, more than 1,000,000 students worldwide as well as a successful YouTube channel is the best proof for that.
The most rewarding experience for me is to see how people find new, better jobs, build awesome web applications, work on amazing projects or simply enjoy their hobby with the help of my content. That's why, together with Manuel Lorenz, I founded Academind to offer the best possible learning experience and to share the pleasure of learning with our students.