NodeJS - The Complete Guide (MVC, REST APIs, GraphQL, Deno)
Master Node JS, build REST APIs with Node.js, GraphQL APIs, add Authentication, use MongoDB, SQL & much more!
Enroll in Course
Node.js is probably THE most popular and modern server-side programming language you can dive into these days!
Node.js developers are in high demand and the language is used for everything from traditional web apps with server-side rendered views over REST APIs all the way up to GraphQL APIs and real-time web services. Not to mention its applications in build workflows for projects of all sizes.
This course will teach you all of that! From scratch with zero prior knowledge assumed. Though if you do bring some knowledge, you'll of course be able to quickly jump into the course modules that are most interesting to you.
Here's what you'll learn in this course:
- Node.js Basics & Basic Core Modules
- Parsing Requests & Sending Responses
- Rendering HTML Dynamically (on the Server)
- Using Express.js
- Working with Files and generating PDFs on the Server (on-the-fly)
- File Up- and Download
- Using the Model-View-Controller (MVC) Pattern
- Using Node.js with SQL (MySQL) and Sequelize
- Using Node.js with NoSQL (MongoDB) and Mongoose
- Working with Sessions & Cookies
- User Authentication and Authorization
- Sending E-Mails
- Validating User Input
- Data Pagination
- Handling Payments with Stripe.js
- Building REST APIs
- Authentication in REST APIs
- File Upload in REST APIs
- Building GraphQL APIs
- Authentication in GraphQL APIs
- File Upload in GraphQL APIs
- Building a Realtime Node.js App with Websockets
- Automated Testing (Unit Tests)
- Deploying a Node.js Application
- And Way More!
Does this look like a lot of content? It certainly is!
This is not a short course but it is the "Complete Guide" on Node.js after all. We'll dive into a lot of topics and we'll not just scratch the surface.
We'll also not just walk through boring theory and some slides. Instead, we'll build two major projects: An online shop (including checkout + payments) and a blog.
All topics and features of the course will be shown and used in these projects and you'll therefore learn about them in a realistic environment.
Is this course for you?
If you got no Node.js experience, you'll love this course because it starts with zero knowledge assumed. It's the perfect course to become a Node.js developer.
If you got basic Node.js experience, this course is also a perfect match because you can go through the basic modules quickly and you'll benefit from all the deep dives and advanced topics the course covers.
Are you an advanced Node.js user? Check the curriculum then. Maybe you found no other course that shows how to use SQL with Node.js. Or you're interested in GraphQL. Chances are, that you'll get a lot of value out of this course, too!
40+
hours
450+
lessons
Course Curriculum
-
PreviewIntroduction (1:55)
-
PreviewWhat is Node.js? (4:42)
-
PreviewInstalling Node.js and Creating our First App (7:41)
-
PreviewJoin our Online Learning Community
-
PreviewUnderstanding the Role & Usage of Node.js (7:32)
-
PreviewCourse Outline (7:31)
-
PreviewHow To Get The Most Out Of The Course (3:54)
-
PreviewWorking with the REPL vs Using FIles (2:58)
-
PreviewUsing the Attached Source Code
-
StartThe Academind Pro Referral Program
-
StartModule Introduction (1:36)
-
StartJavaScript in a Nutshell (2:35)
-
StartRefreshing the Core Syntax (4:34)
-
Startlet & const (2:27)
-
StartUnderstanding Arrow Functions (5:17)
-
StartWorking with Objects, Properties & Methods (3:19)
-
StartArrays & Array Methods (4:16)
-
StartArrays, Objects & Reference Types (2:13)
-
StartUnderstanding Spread & Rest Operators (6:40)
-
StartDestructuring (5:37)
-
StartAsync Code & Promises (10:28)
-
StartTemplate Literals
-
StartWrap Up (0:50)
-
StartUseful Resources & Links
-
StartModule Introduction (1:50)
-
PreviewHow The Web Works (4:11)
-
PreviewCreating a Node Server (13:22)
-
PreviewThe Node Lifecycle & Event Loop (4:53)
-
StartUnderstanding Requests (3:10)
-
StartSending Responses (5:37)
-
StartControlling the Node.js Process
-
StartRouting Requests (5:48)
-
StartRedirecting Requests (4:10)
-
StartParsing Request Bodies (11:12)
-
StartUnderstanding Event Driven Code Execution (6:00)
-
StartBlocking and Non-Blocking Code (5:04)
-
StartNode.js - Looking Behind the Scenes (12:01)
-
StartUsing the Node Modules System (10:05)
-
StartWrap Up (5:15)
-
StartAssignment - Basics (Problem) (2:32)
-
StartAssignment - Basics (Solution) (11:32)
-
StartUseful Resources & Links
-
StartModule Introduction (0:40)
-
StartUnderstanding NPM Scripts (7:03)
-
StartInstalling 3rd Party Packages (8:20)
-
StartGlobal Features vs Core Modules vs Third-Party Modules
-
StartUsing Nodemon for Autorestarts (1:36)
-
StartGlobal & Local npmPackages
-
StartUnderstanding different Error Types (1:49)
-
StartFinding & Fixing Syntax Errors (3:10)
-
StartDealing with Runtime Errors (2:47)
-
StartLogical Errors (6:32)
-
StartUsing the Debugger (3:10)
-
StartRestarting the Debugger Automatically After Editing our App (6:21)
-
StartChanging Variables in the Debug Console (1:26)
-
StartWrap Up (3:14)
-
StartUseful Resources & Links
-
StartModule Introduction (2:15)
-
StartWhat is Express.js? (3:43)
-
StartInstalling Express.js (3:47)
-
StartAdding Middleware (5:13)
-
StartHow Middleware Works (2:58)
-
StartExpress.js - Looking Behind the Scenes (3:42)
-
StartHandling Different Routes (4:59)
-
StartAssignment - Express.js (Problem) (1:52)
-
StartAssignment - Express.js (Solution) (6:21)
-
StartParsing Incoming Requests (8:00)
-
StartLimiting Middleware Execution to POST Requests (1:48)
-
StartUsing Express Router (8:04)
-
StartAdding a 404 Error Page (2:30)
-
StartFiltering Paths (3:38)
-
StartCreating HTML Pages (5:09)
-
StartServing HTML Pages (7:19)
-
StartReturning a 404 Page (2:00)
-
StartUsing a Helper Function for Navigation (3:37)
-
StartStyling our Pages (13:58)
-
StartServing Files Statically (7:49)
-
StartAssignment - Navigation (Problem) (1:11)
-
StartAssignment - Navigation (Solution) (8:32)
-
StartWrap Up (3:36)
-
StartUseful Resources & Links
-
StartModule Introduction (2:31)
-
StartSharing Data Across Requests & Users (8:05)
-
StartTemplating Engines - An Overview (4:40)
-
StartInstalling & Implementing Pug (11:04)
-
StartOutputting Dynamic Content (11:02)
-
StartConverting HTML Files to Pug (5:55)
-
StartAdding a Layout (5:35)
-
StartFinishing the Pug Template (5:50)
-
StartWorking with Handlebars (5:08)
-
StartConverting our Project to Handlebars (7:41)
-
StartAdding the Layout to Handlebars (8:41)
-
StartWorking with EJS (8:19)
-
StartWorking on the Layout with Partials (9:33)
-
StartWrap Up (3:46)
-
StartAssignment - Templating Engines (Problem) (1:36)
-
StartAssignment - Templating Engines (Solution) (25:02)
-
StartUseful Resources & Links
-
StartModule Introduction (0:52)
-
StartWhat is the MVC? (2:48)
-
StartAdding Controllers (9:20)
-
StartFinishing the Controllers (2:37)
-
StartAdding a Product Model (8:05)
-
StartStoring Data in Files Via the Model (9:39)
-
StartFetching Data from Files Via the Model (3:55)
-
StartRefactoring the File Storage Code (4:25)
-
StartWrap Up (2:15)
-
StartUseful Resources & Links
-
StartModule Introduction (1:21)
-
StartCreating the Shop Structure (5:34)
-
StartWorking on the Navigation (2:49)
-
StartRegistering the Routes (11:04)
-
StartStoring Product Data (5:15)
-
StartDisplaying Product Data (3:02)
-
StartEditing & Deleting Products (4:47)
-
StartAdding Another Item (2:08)
-
StartUseful Resources & Links
-
StartModule Introduction (1:07)
-
StartPreparations (1:23)
-
StartAdding the Product ID to the Path (4:34)
-
StartExtracting Dynamic Params (4:32)
-
StartLoading Product Detail Data (4:52)
-
StartRendering the Product Detail View (5:26)
-
StartPassing Data with POST Requests (7:19)
-
StartAdding a Cart Model (12:29)
-
StartUsing Query Params (7:54)
-
StartPre-Populating the Edit Product Page with Data (6:46)
-
StartLinking to the Edit Page (2:20)
-
StartEditing the Product Data (8:58)
-
StartAdding the Product-Delete Functionality (5:34)
-
StartDeleting Cart Items (8:11)
-
StartDisplaying Cart Items on the Cart Page (8:45)
-
StartDeleting Cart Items (5:24)
-
StartFixing a Delete Product Bug (1:31)
-
StartWrap Up (1:46)
-
StartUseful Resources & Links
-
StartModule Introduction (1:33)
-
StartChoosing a Database (4:17)
-
StartNoSQL Introduction (4:20)
-
StartComparing SQL and NoSQL (5:06)
-
StartSetting Up MySQL (7:16)
-
StartConnecting our App to the SQL Database (6:50)
-
StartBasic SQL & Creating a Table (4:07)
-
StartRetrieving Data (3:00)
-
StartFetching Products (6:30)
-
StartFetching Products - Time to Practice (1:04)
-
StartInserting Data Into the Database (4:12)
-
StartFetching a Single Product with the "where" Condition (2:57)
-
StartWrap Up (1:24)
-
StartUseful Resources & Links
-
StartModule Introduction (1:26)
-
StartWhat is Sequelize? (2:35)
-
StartConnecting to the Database (3:57)
-
StartDefining a Model (5:47)
-
StartSyncing JS Definitions to the Database (4:29)
-
StartInserting Data & Creating a Product (4:49)
-
StartRetrieving Data & Finding Products (3:01)
-
StartGetting a Single Product with the "where" Condition (4:30)
-
StartFetching Admin Products (1:25)
-
StartUpdating Products (5:18)
-
StartDeleting Products (2:48)
-
StartCreating a User Model (2:48)
-
StartAdding a One-To-Many Relationship (5:54)
-
StartCreating & Managing a Dummy User (6:01)
-
StartUsing Magic Association Methods (3:42)
-
StartFetching Related Products (2:46)
-
StartOne-To-Many & Many-To-Many Relations (6:03)
-
StartCreating & Fetching a Cart (5:45)
-
StartAdding New Products to the Cart (6:42)
-
StartAdding Existing Products & Retrieving Cart Items (4:55)
-
StartDeleting Related Items & Deleting Cart Products (2:24)
-
StartAdding an Order Model (4:19)
-
StartStoring Cartitems as Orderitems (8:19)
-
StartResetting the Cart & Fetching and Outputting Orders (9:53)
-
StartWrap Up (1:49)
-
StartUseful Resources & Links
-
StartModule Introduction (1:17)
-
StartWhat is MongoDB? (3:57)
-
StartRelations in NoSQL (3:58)
-
StartSetting Up MongoDB (4:48)
-
StartInstalling the MongoDB Driver (7:01)
-
StartCreating the Database Connection (3:25)
-
StartFinishing the Database Connection (4:21)
-
StartUsing the Database Connection (5:14)
-
StartCreating Products (2:08)
-
StartUnderstanding the MongoDB Compass (2:38)
-
StartFetching All Products (4:34)
-
StartFetching a Single Product (7:45)
-
StartMaking the "Edit" & "Delete" Buttons Work Again (2:21)
-
StartWorking on the Product Model to Edit our Product (7:14)
-
StartFinishing the "Update Product" Code (3:57)
-
StartOne Note About Updating Products (1:46)
-
StartDeleting Products (3:30)
-
StartFixing the "Add Product" Functionality (1:28)
-
StartCreating New Users (7:00)
-
StartStoring the User in our Database (5:40)
-
StartWorking on Cart Items & Orders (7:13)
-
StartAdding the "Add to Cart" Functionality (6:14)
-
StartStoring Multiple Products in the Cart (7:01)
-
StartDisplaying the Cart Items (9:20)
-
StartFixing a Bug (1:02)
-
StartDeleting Cart Items (4:02)
-
StartAdding an Order (4:36)
-
StartAdding Relational Order Data (6:21)
-
StartGetting Orders (3:20)
-
StartRemoving Deleted Items From the Cart (2:58)
-
StartWrap Up (2:19)
-
StartUseful Resources & Links
-
StartModule Introduction (1:23)
-
StartWhat is Mongoose? (2:04)
-
StartConnecting to the MongoDB Server with Mongoose (4:47)
-
StartCreating the Product Schema (6:01)
-
StartSaving Data Through Mongoose (6:10)
-
StartFetching All Products (2:27)
-
StartFetching a Single Product (1:24)
-
StartUpdating Products (4:14)
-
StartDeleting Products (1:19)
-
StartAdding and Using a User Model (6:36)
-
StartUsing Relations in Mongoose (3:44)
-
StartOne Important Thing About Fetching Relations (3:53)
-
StartWorking on the Shopping Cart (5:25)
-
StartLoading the Cart (5:12)
-
StartDeleting Cart Items (2:45)
-
StartCreating & Getting Orders (9:56)
-
StartStoring All Order Related Data (1:52)
-
StartClearing the Cart After Storing an Order (1:59)
-
StartGetting & Displaying the Orders (3:40)
-
StartWrap Up (1:37)
-
StartUseful Resources & Links
-
StartModule Introduction (0:45)
-
StartWhat is a Cookie? (1:58)
-
StartThe Current Project Status (2:18)
-
StartOptional: Creating the Login Form (6:22)
-
StartAdding the Request Driven Login Solution (7:40)
-
StartSetting a Cookie (5:55)
-
StartManipulating Cookies (1:58)
-
StartConfiguring Cookies (5:43)
-
StartWhat is a Session? (2:58)
-
StartInitializing the Session Middleware (2:43)
-
StartUsing the Session Middleware (4:14)
-
StartUsing MongoDB to Store Sessions (5:59)
-
StartSessions & Cookies - A Short Summary (1:53)
-
StartAssignment - Sessions & Cookies (Problem) (1:37)
-
StartAssignment - Sessions & Cookies (Solution) (7:24)
-
StartDeleting a Cookie (4:35)
-
StartFixing Some Minor Bugs (4:27)
-
StartMaking "Add to Cart" Work Again (6:45)
-
StartTwo Tiny Improvements (3:11)
-
StartWrap Up (3:43)
-
StartUseful Resources & Links
-
StartModule Introduction (1:22)
-
StartWhat is Authentication? (2:25)
-
StartHow is Authentication Implemented? (2:05)
-
StartOur Updated Project Status (2:25)
-
StartImplementing an Authentication Flow (7:34)
-
StartEncrypting Passwords (4:36)
-
StartAdding a Tiny Code Improvement (1:21)
-
StartAdding the Signin Functionality (6:21)
-
StartWorking on Route Protection (2:12)
-
StartUsing Middleware to Protect Routes (4:38)
-
StartUnderstanding CSRF Attacks (3:23)
-
StartUsing a CSRF Token (6:56)
-
StartAdding CSRF Protection (4:23)
-
StartFixing the Order Button (1:16)
-
StartProviding User Feedback (7:10)
-
StartOptional: Styling Error Messages (3:32)
-
StartFinishing the Flash Messages (2:20)
-
StartAdding Additional Flash Messages (2:20)
-
StartWrap Up (2:32)
-
StartUseful Resources & Links
-
StartModule Introduction (0:42)
-
StartResetting Passwords (3:03)
-
StartImplementing the Token Logic (7:41)
-
StartCreating the Token (1:27)
-
StartCreating the Reset Password Form (5:27)
-
StartAdding Logic to Update the Password (6:35)
-
StartWhy we Need Authorization (1:58)
-
StartAdding Authorization (2:07)
-
StartAdding Protection to Post Actions (3:43)
-
StartWhy Editing Fails (1:06)
-
StartWrap Up (1:44)
-
StartUseful Resources & Links
-
StartModule Introduction (1:03)
-
StartWhy Should We Use Validation? (2:28)
-
StartHow to Validate Input? (4:04)
-
StartSetup & Basic Validation (10:44)
-
StartUsing Validation Error Messages (2:11)
-
StartBuilt-In & Custom Validators (3:55)
-
StartMore Validators (4:26)
-
StartChecking For Field Equality (3:14)
-
StartAdding Async Validation (4:46)
-
StartAssignment - Validation (Problem) (1:18)
-
StartAssignment - Validation (Solution) (4:45)
-
StartKeeping User Input (4:11)
-
StartAdding Conditional CSS Classes (5:29)
-
StartAdding Validation to Login (5:36)
-
StartSanitizing Data (3:41)
-
StartValidating Product Addition (11:40)
-
StartValidating Product Editing (6:57)
-
StartWrap Up (1:23)
-
StartUseful Resources & Links
-
StartModule Introduction (0:45)
-
StartTypes of Errors & Error Handling (5:14)
-
StartAnalyzing the Error Handling in the Current Project (2:22)
-
StartErrors - Some Theory (6:43)
-
StartThrowing Errors in Code (2:42)
-
StartReturning Error Pages (6:54)
-
StartUsing the Express.js Error Handling Middleware (5:47)
-
StartUpdating the App (3:09)
-
StartUsing the Error Handling Middleware Correctly (4:54)
-
StartStatus Codes (5:57)
-
StartWrap Up (2:21)
-
StartUseful Resources & Links
-
StartModule Introduction (0:54)
-
StartAdding a File Picker to the Frontend (3:06)
-
StartHandling Multipart Form Data (5:15)
-
StartHandling File Uploads with Multer (4:51)
-
StartConfiguring Multer to Adjust Filename & Filepath (4:29)
-
StartFiltering Files by Mimetype (2:28)
-
StartStoring File Data in the Database (7:42)
-
StartServing Images Statically (4:25)
-
StartDownloading Files with Authentication (7:33)
-
StartSetting File Type Headers (2:35)
-
StartRestricting File Access (3:19)
-
StartStreaming Data vs Preloading Data (3:20)
-
StartUsing PDFKit for .pdf Generation (5:32)
-
StartGenerating .pdf Files with Order Data (6:50)
-
StartDeleting Files (5:57)
-
StartFixing Invoice Links (0:35)
-
StartWrap Up (1:31)
-
StartUseful Resources & Links
-
StartModule Introduction (0:48)
-
StartAdding Pagination Links (4:08)
-
StartRetrieving a Chunk of Data (3:47)
-
StartPreparing Pagination Data on the Server (3:52)
-
StartAdding Dynamic Pagination Buttons (8:07)
-
StartRe-Using the Pagination Logic & Controls (3:41)
-
StartWrap Up (1:02)
-
StartUseful Resources & Links
-
StartModule Introduction (1:25)
-
StartWhat are REST APIs and why do we use Them? (7:01)
-
StartAccessing Data with REST APIs (5:41)
-
StartUnderstanding Routing & HTTP Methods (5:25)
-
StartREST APIs - The Core Principles (4:09)
-
StartCreating our REST API Project & Implementing the Route Setup (6:41)
-
StartSending Requests & Responses and Working with Postman (13:28)
-
StartREST APIs, Clients & CORS Errors (10:33)
-
StartSending POST Requests (6:32)
-
StartWrap Up (2:14)
-
StartUseful Resources & Links
-
StartModule Introduction (1:10)
-
StartREST APIs & The Rest Of The Course (3:59)
-
StartUnderstanding the Frontend Setup (4:18)
-
StartPlanning the API (3:02)
-
StartFetching Lists of Posts (6:19)
-
StartAdding a Create Post Endpoint (7:36)
-
StartAdding Server Side Validation (6:19)
-
StartSetting Up a Post Model (5:14)
-
StartStoring Posts in the Database (3:32)
-
StartStatic Images & Error Handling (6:53)
-
StartFetching a Single Post (7:48)
-
StartUploading Images (8:56)
-
StartUpdating Posts (14:02)
-
StartDeleting Posts (4:17)
-
StartAdding Pagination (6:20)
-
StartAdding a User Model (4:08)
-
StartAdding User Signup Validation (6:29)
-
StartSigning Users Up (7:24)
-
StartHow Does Authentication Work? (3:10)
-
StartStarting with User Login (3:51)
-
StartLogging In & Creating JSON Web Tokens (JWTs) (7:53)
-
StartUsing & Validating the Token (9:43)
-
StartAdding Auth Middleware to All Routes (1:52)
-
StartConnecting Posts & Users (6:13)
-
StartAdding Authorization Checks (3:50)
-
StartClearing Post-User Relations (2:54)
-
StartAssignment - REST API (Problem) (0:59)
-
StartAssignment - REST API (Solution) (8:16)
-
StartWrap Up (2:28)
-
StartUseful Resources & Links
-
StartModule Introduction (0:55)
-
StartWhat Are Websockets & Why Would You Use Them? (4:17)
-
StartWebsocket Solutions - An Overview (1:35)
-
StartSetting Up Socket.io on the Server (3:56)
-
StartEstablishing a Connection From the Client (2:27)
-
StartIdentifying Realtime Potential (2:42)
-
StartSharing the IO Instance Across Files (2:46)
-
StartSynchronizing POST Additions (7:14)
-
StartFixing a Bug - The Missing Username (1:44)
-
StartUpdating Posts On All Connected Clients (3:58)
-
StartSorting Correctly (0:59)
-
StartDeleting Posts Across Clients (2:31)
-
StartWrap Up (1:48)
-
StartUseful Resources & Links
-
StartModule Introduction (0:57)
-
StartWhat is GraphQL? (9:17)
-
StartUnderstanding the Setup & Writing our First Query (11:15)
-
StartDefining a Mutation Schema (5:42)
-
StartAdding a Mutation Resolver & GraphiQL (9:42)
-
StartAdding Input Validation (4:19)
-
StartHandling Errors (3:45)
-
StartConnecting the Frontend to the GraphQL API (6:49)
-
StartAdding a Login Query & a Resolver (6:20)
-
StartAdding Login Functionality (4:57)
-
StartAdding a Create Post Mutation (7:23)
-
StartExtracting User Data From the Auth Token (5:48)
-
StartSending the "Create Post" Query (4:46)
-
StartFixing a Bug & Adding New Posts Correctly (2:53)
-
StartAdding a "Get Post" Query & Resolver (4:53)
-
StartSending "Create Post" and "Get Post" Queries (5:13)
-
StartAdding Pagination (4:28)
-
StartUploading Images (10:26)
-
StartViewing a Single Post (6:07)
-
StartUpdating Posts (9:32)
-
StartDeleting Posts (9:25)
-
StartManaging the User Status (9:17)
-
StartUsing Variables (16:06)
-
StartFixing a Pagination Bug (2:48)
-
StartWrap Up (3:36)
-
StartUseful Resources & Links
-
StartModule Introduction (1:16)
-
StartDeploying Different Kinds of Apps (1:39)
-
StartDeployment Preparations (4:52)
-
StartUsing Environment Variables (11:12)
-
StartUsing Production API Keys (1:19)
-
StartSetting Secure Response Headers with Helmet (2:40)
-
StartCompressing Assets (2:33)
-
StartSetting Up Request Logging (3:34)
-
StartSetting Up a SSL Server (9:55)
-
StartUsing a Hosting Provider (4:25)
-
StartUnderstanding the Project & the Git Setup (4:03)
-
StartA Deployment Example with Heroku (10:26)
-
StartDeploying APIs (2:52)
-
StartUseful Resources & Links
-
StartModule Introduction (0:43)
-
StartWhat is Testing? (2:42)
-
StartWhy & How? (3:25)
-
StartSetup and Writing a First Test (9:40)
-
StartTesting the Auth Middleware (12:33)
-
StartOrganizing Multiple Tests (4:12)
-
StartWhat Not To Test! (8:02)
-
StartUsing Stubs (8:38)
-
StartTesting Controllers (8:03)
-
StartTesting Asynchronous Code (5:53)
-
StartSetting up a Testing Database (6:33)
-
StartTesting Code With An Active Database (6:33)
-
StartCleaning Up (3:29)
-
StartHooks (4:34)
-
StartTesting Code That Requires Authentication (12:37)
-
StartWrap Up & Mastering Tests (4:22)
-
StartUseful Resources & Links
-
StartNew Lecture
-
StartModule Introduction (1:22)
-
StartTypeScript: What & Why (6:02)
-
StartTypeScript Setup (4:09)
-
StartAssigning Types (3:29)
-
StartType Inference & Type Casting (6:10)
-
StartConfiguring TypeScript (5:01)
-
StartWorking with Union Types (4:23)
-
StartUsing Object and Array Types (6:17)
-
StartType Aliases & Interfaces (3:22)
-
StartUnderstanding Generic Types (5:09)
-
StartTypeScript: A Summary (0:34)
-
StartTypeScript & Node: Setup (2:14)
-
StartGetting Started with TypeScript & Node (9:31)
-
StartWriting TypeScript Express.js Code (3:59)
-
StartAdding REST Routes with TS (6:42)
-
StartFinishing the REST Routes (5:53)
-
StartTesting the API (4:52)
-
StartUsing Type Casting (4:21)
-
StartMoving to a Better Project Structure (3:44)
-
StartWrap Up (2:50)
-
StartModule Resources
-
StartModule Introduction (1:35)
-
StartWhat is Deno? (3:09)
-
StartWhy Deno? (1:55)
-
StartDeno Setup (5:50)
-
StartWriting First Deno Code (4:18)
-
StartThe Deno Runtime (Namespace) API (3:13)
-
StartUsing the Runtime API (5:26)
-
StartWorking with Deno Permissions (4:31)
-
StartRepeating the Example with Node (4:16)
-
StartHow Deno Features Are Organized (4:28)
-
StartUsing the Standard Library Modules (8:30)
-
StartCreating a Webserver (2:54)
-
StartUsing the Oak Framework with Deno (9:48)
-
StartMore on Module URLs
-
StartCreating an Example Node REST API (12:15)
-
StartRe-building the REST API with Deno (16:18)
-
StartShould You Switch From Node To Deno? (5:05)
-
StartModule Resources
Course Prerequisites
General knowledge of how the web works is recommended but not a must-have (How the Web Works Article + Video)
Basic JavaScript knowledge is strongly recommended but could be picked up whilst going through the course ("JavaScript - The Complete Guide" course)
NO NodeJS knowledge is required!
All pre-requisites are covered by courses in our "Academind Pro" Membership.
Don't take my word for it - here's what other students are saying.
Damien Briggs
As always with Maximilian Schwarzmüller, the explanation of each concept is exceptionally clear and the structure of the material is superb. I would highly recommend this course to anyone starting in Node js, or for a refresher for those who already know some Node js.
Tien-Yu Sun
This Node.js course, just like other courses of Maximilian, is just excellent. Not only will you learn how to work with Node.js, you will also be given a lot of in-depth knowledge. This will allow you to gain better understanding of what you are working on and thus handle things much more smoothly. I enjoy his teaching a lot. I think you will too!
Muhammad Hamza Khan
Undeniably the best nodeJs course. Learned a lot from it, developed some small systems for clients and the course basically paid it self. Highly recommended.
30 Day Money Back Guarantee - No Questions Asked!
Our courses helped thousands of students learn something new and improve their lives.
We're so convinced by our course quality that we guarantee your success and provide a full refund within the first 30 days if you're not happy with the course.
Your Instructor
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 2,500,000 students worldwide as well as a successful YouTube channel with 900.000 subscribers 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.
Frequently Asked Questions
Join 10424 happy students!
Single-Course License
Full access to "NodeJS - The Complete Guide (MVC, REST APIs, GraphQL, Deno)"
$99
Access to this course only.
This is a one-time payment that grants access to this course only, not to any other courses.
Academind Pro Membership
Unlimited access to this and all other current & future courses!
$25/month
Cancel Anytime!
This is a recurring payment, charged automatically on a monthly basis. You can cancel anytime from inside your user profile to avoid being charged again once your billing cycle ends. For more information, please contact Academind.