Complete Node.js Developer in 2022: Zero to Mastery

Complete Node.js Developer in 2022: Zero to Mastery

English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 413 lectures (46h 10m) | 21.6 GB

Learn from Node.js experts. This is the only Node JS tutorial + projects course you need to learn Node, build advanced large-scale applications from scratch & get hired as a Backend Developer in 2022. Go from Zero To Node Mastery.

What you’ll learn

  • Build enterprise-level Node applications and deploy to the cloud (AWS)
  • Lead Node JS projects by making good architecture decisions and helping others on your team
  • Work with real-life data and the SpaceX API to build a NASA launch system to discover new planets that may contain life + other projects
  • Build a MERN (MongoDb, Express, React, Node) fullstack app and deploy to production
  • Become a top 10% Node Developer by learning advanced topics most courses don’t cover
  • Master the latest ecosystem of a Backend Node JS Developer from scratch
  • Learn to build secure and performant, large-scale applications like a Senior Backend Developer
  • Use Node JS to build production grade apps including REST APIs and GraphQL APIs
  • Authentication, File I/O, Databases (SQL, MongoDB), Express Framework, Sockets, plus many other important topics a Backend Developer should know
  • Load balancing, Monitoring, CI/CD, and Zero Downtime Deployment
  • Learn security best practices throughout the course so you can be confident with your deployments
Table of Contents

Introduction
1 Course Outline
2 Join Our Online Classroom!
3 Exercise Meet The Community
4 Node.js – How We Got Here
5 Node.js Runtime
6 How To Succeed In The Course
7 Latest Version Of Node.js
8 Course Projects + Code + Cheatsheet
9 Web Developer Monthly

Node.js Fundamentals Foundations and Environment Setup
10 OPTIONAL Installing Node.js
11 OPTIONAL Windows Installation Tips
12 The Node.js Release Cycle
13 The Node.js REPL
14 Setting Up Our Developer Environment
15 Our First Node.js App
16 Node.js VS JavaScript
17 The global Object
18 Introduction to Backend VS Frontend
19 Monthly Coding Challenges, Free Resources and Guides

Node.js Fundamentals Internals
20 What Node.js Includes
21 Node Internals Deep Dive
22 libuv Internals Deep Dive
23 Synchronous vs Asynchronous
24 Asynchronous Callbacks
25 Non-Blocking Input & Output
26 Exercise Is JavaScript Asynchronous
27 Multi-Threading, Processes, and Threads
28 Is Node.js Multi-Threaded
29 The Event Loop
30 Callback Queues
31 Phases of the Event Loop
32 Comparing Node With PHP and Python
33 What Is Node.js Best At
34 Observer Design Pattern
35 The Node Event Emitter
36 Recommended Path Asynchronous JavaScript

Node.js Fundamentals Module System
37 The require Function
38 Making HTTP Requests
39 Why Use Modules
40 Creating Our Own Modules
41 Exporting From Modules
42 CommonJS vs ECMAScript Modules
43 Creating Our Own ECMAScript Modules
44 Module Caching
45 Using index.js
46 Should We Use index.js

Node.js Fundamentals Package Management
47 NPM The Node Package Manager
48 Creating Our First NPM Package
49 Packages And The NPM Registry
50 Using Third Party Modules
51 The node modules Folder
52 Semantic Versioning
53 package-lock.json and Versioning
54 Vulnerabilities In Dependencies
55 Installing NPM Tools nodemon

Node.js File IO – Planets Project
56 Exploring Planets With Node
57 Importing Kepler Space Telescope Data
58 Setting Up Our CSV Parser
59 Latest Version of CSV Parser
60 Streaming Large Data Files
61 Reading Our Planets Data
62 Parsing Our Planets Data
63 Finding Habitable Planets
64 Exploring Habitable Planets

Web Servers with Node.js
65 What is a Web Server
66 Introduction to HTTP Responses and Requests
67 HTTP Requests
68 HTTP Responses
69 Our First Webserver
70 HTTP APIs and Routing
71 Parameterized URLs
72 Same Origin Policy
73 Exercise Same Origin Policy
74 Cross Origin Resource Sharing (CORS)
75 POSTing Data to the Server
76 Requests and Responses as Streams
77 Web Servers Recap

First Express.js API
78 Why Express
79 Introduction to Express
80 Express vs Next.js vs Koa
81 Route Parameters
82 Postman and Insomnia
83 Development Dependencies
84 Middleware
85 Writing Our Own Logging Middleware
86 POST Requests in Express
87 Model View Controller (MVC)
88 Model View Controller in Express
89 Express Routers
90 RESTful APIs
91 Create Read Update and Delete (CRUD)
92 Sending Files
93 Serving Websites With Node
94 Templating Engines
95 Layouts and Separation of Concerns

NASA Project
96 Introduction & Architecture
97 NASA Dashboard Front End Setup
98 NASA Dashboard Functionality
99 What You Need To Know
100 React.js Front End Code Walkthrough
101 API Server Setup
102 Environment Variables On Windows
103 GET planets
104 CORS Middleware
105 Models vs Controllers vs Routers
106 The Planets Model
107 Loading Data On Startup
108 Automating Full Stack Applications With NPM
109 Common Issues With NPM Scripts
110 Serving React.js Front End In Production
111 Setting BUILD PATH On Windows
112 Logging Requests With Morgan
113 The Launches Model
114 GET launches
115 Serving Applications With Client Side Routing
116 Working With Data Models Building a Data Access Layer
117 POST launches Creating Launches 1
118 POST launches Creating Launches 2
119 POST launches Validation For POST Requests
120 Connecting POST launches With Front End Dashboard
121 DELETE launches Aborting Launches 1
122 DELETE launches Aborting Launches 2
123 Updating Our Architecture Diagram

Testing APIs
124 Testing In Node
125 Testing APIs With Jest
126 Testing API Endpoints With Supertest GET
127 Testing API Endpoints With Supertest POST
128 Testing API Endpoints With Supertest Error Cases

Improving Node Performance
129 Node Server Performance
130 Building A Simple Blocking Server
131 Real Life Blocking Functions
132 Running Multiple Node Processes
133 The Node Cluster Module
134 Clustering In Action
135 Maximizing Cluster Performance
136 Load Balancing
137 The PM2 Tool
138 Using PM2 To Create Clusters
139 Managing Live Clusters With PM2
140 Zero Downtime Restart
141 Improving Performance Of Our NASA Project
142 Worker Threads
143 Worker Threads In Action

Databases
144 Introduction to Databases
145 Recommended Path SQL
146 Comparing SQL vs NoSQL
147 Database Schemas & Schemaless Databases
148 Choosing a Database for our NASA Project
149 SQL vs MongoDB Trends and Object-Relational Impedance Mismatch
150 SQL vs MongoDB Schemas, References, and ACID Transactions
151 Setting up MongoDB Atlas
152 Connecting to MongoDB
153 Connecting with the Latest Version of Mongoose
154 Mongoose
155 Creating Mongoose Schema for Launches
156 Exercise Creating Mongoose Schema for Planets
157 Creating Models From Schemas
158 Mongoose Models vs MVC Models
159 Creating and Inserting Documents
160 Finding Documents
161 The Upsert Operation
162 Exploring Data Using Atlas
163 Updating Project Architecture
164 ObjectIDs
165 Excluding Fields From The Response
166 Saving Launches
167 Listing All Launches
168 Referential Integrity
169 Auto Increment In MongoDB
170 Getting Latest Flight Number
171 Scheduling New Launches
172 Investigating A Mongoose Mystery
173 Aborting Launches
174 Aborting with the Latest MongoDB Driver
175 Updating Tests For Mongoose 1
176 Updating Tests For Mongoose 2

Working With REST APIs – SpaceX Project
177 Working With SpaceX
178 The SpaceX API
179 Versioning Node APIs
180 Updating Our API Tests
181 Exploring SpaceX Launches API
182 Running Search Queries
183 Loading SpaceX Data In Our API
184 Mapping SpaceX Data To Our Database
185 Using Paginated APIs
186 Minimizing API Load
187 Persisting SpaceX Launches
188 Paginating Our Endpoints 1
189 Paginating Our Endpoints 2
190 Sorting Paginated Data
191 Cleaning Up Launch Data
192 Managing Secrets With Dotenv
193 Running API Tests With Dotenv
194 Securing Leaked Secrets

Node Security + Authentication
195 Security and Authentication Overview
196 Encrypted Connections with SSL and TLS
197 Digital Certificates, Signing, and Man In The Middle Attacks
198 Setting Up Our Security Example
199 HTTPS With Node, Self Signed Certificates, and Public Key Cryptography
200 Helmet.js
201 Authentication vs Authorization
202 Social Sign In
203 API Keys
204 JWT Tokens
205 The OAuth Standard
206 OAuth 2.0 Authorization Code Flow
207 OAuth In Action with Single Sign On
208 Registering with the Google Authorization Server
209 Authentication Endpoints With Middleware
210 Passport.js
211 Dotenv for Client Secrets
212 Authentication With Google And OAuth 1
213 Authentication With Google And OAuth 2
214 Cookie Based Authentication
215 Sessions
216 Server VS Client Side Sessions With Cookies
217 Session Middleware in Express
218 Setting Up OAuth Cookie Session
219 Reading and Writing the OAuth Session 1
220 Reading and Writing the OAuth Session 2
221 Restricting Access to Endpoints
222 Implementing Logout
223 Experimenting With Fake Sessions
224 Wrap Up and Next Steps
225 Resource Security Cheat Sheet

Continuous Integration and Delivery
226 Introduction to CI and CD
227 Continuous Integration
228 Continuous Delivery
229 Continuous Deployment
230 Pipelines
231 GitHub Actions
232 Setting Up GitHub Actions
233 Continuous Integration Build Pipeline
234 Build Pipeline In Action
235 GitHub Actions Marketplace
236 Continuous Integration Test Pipeline
237 Mocking Out Databases
238 Databases With Continuous Integration
239 Populating Data For Continuous Integration

Node Production and the Cloud (Docker + AWS)
240 Deploying to the Cloud
241 Serverless vs Containers
242 Virtual Machines
243 What is a Container
244 Installing Docker
245 Running Our First Docker Container
246 Your DockerHub Account
247 Creating a Dockerfile
248 Improving Our Dockerfile With Layers
249 Updating Our API URL
250 Building NASA Project Docker Image
251 Running NASA Project in a Container
252 Pushing Images to Docker Hub
253 Exploring Amazon Web Services
254 Creating an EC2 Instance 1
255 Creating an EC2 Instance 2 Security
256 What is SSH
257 Connecting To Our EC2 Instance With SSH
258 Setting Up Our EC2 Server
259 Deploying Our NASA API

GraphQL
260 GraphQL Overview
261 Our First GraphQL Query
262 GraphQL Queries In Action
263 GraphQL vs REST Over-fetching & Under-fetching
264 GraphQL vs REST Summary
265 Exploring GraphQL Implementations
266 GraphQL In Node
267 GraphiQL
268 Designing An E-Commerce Schema
269 GraphQL Tools
270 Modularizing Large GraphQL Projects Schemas
271 Resolvers
272 Modularizing Large GraphQL Projects Resolvers
273 Filtering with Queries and Resolvers
274 Exercise Query Products By ID
275 Mutations In Action
276 Implementing Mutations on the Server
277 Exercise Add New Product Review
278 GraphQL With Apollo
279 Building an Apollo Server With Node.js

Sockets with Node.js
280 Introduction to Sockets
281 Polling
282 What is a Socket
283 Sockets VS Polling
284 WebSockets
285 Introduction to socket.io
286 socket.io Client and Server APIs
287 Multiplayer Pong Overview
288 Recommended Path Pong Front End
289 Reviewing Our Pong Front End
290 Multiplayer Pong Message Sequence
291 Setting Up a socket.io Server
292 Connecting to socket.io
293 Handling CORS With Sockets
294 Identifying Connected Clients
295 Listening for Events in the Pong Server
296 Broadcasting Events
297 Handling Events in the Pong Client
298 Implementing the Game Logic Paddle
299 Implementing the Game Logic Ball
300 What Happens When You Disconnect
301 Using Socket.io with Express
302 Namespaces
303 Rooms

Where To Go From Here
304 Become An Alumni
305 Learning Guideline
306 LinkedIn Endorsements
307 Coding Challenges

Extra Deno vs Node.js
308 Quick Note Upcoming Videos
309 Why Deno
310 Deno Runtime And V8 Engine
311 Deno Installation
312 Quick Note Installing Deno
313 MACLINUX Installation Tips
314 WINDOWS Installation Tips
315 Setting Up Our Developer Environment
316 Quick Note Official VS Code Plugin
317 Our First Deno App
318 Exercise Our First Deno App
319 The Most Important Video
320 Deno Internals And Architecture
321 Deno Metrics
322 Exercise Deno Architecture
323 Deno 1.5 Compiler Update
324 Deno Game Changers
325 Deno Game Changers 2
326 Will Deno Kill NodeJS
327 Single Executable To Rule Them All
328 Exciting Times Deno 1.6
329 Deno Security
330 Deno Permissions
331 Deno Permissions 2
332 Deno Permissions 3

Appendix How JavaScript Works
333 Quick Note Upcoming Videos
334 JavaScript Engine
335 Exercise Javascript Engine
336 Inside the Engine
337 Exercise JS Engine For All
338 Interpreters and Compilers
339 Inside the V8 Engine
340 Comparing Other Languages
341 Writing Optimized Code
342 WebAssembly
343 Call Stack and Memory Heap
344 Stack Overflow
345 Garbage Collection
346 Memory Leaks
347 Single Threaded
348 Exercise Issue With Single Thread
349 Javascript Runtime
350 Node.js
351 Recommended Path Back To Node

Appendix Asynchronous JavaScript
352 Quick Note Upcoming Videos
353 Section Overview
354 Promises
355 ES8 – Async Await
356 ES9 (ES2018)
357 ES9 (ES2018) – Async
358 Job Queue
359 Parallel, Sequence and Race
360 ES2020 allSettled()
361 Threads, Concurrency and Parallelism
362 Recommended Path Back To Node

Appendix Pong Front End
363 Quick Note Upcoming Videos
364 Pong Project Overview
365 JS – Create Canvas
366 JS – RequestAnimationFrame
367 JS – Game Over
368 Code Review
369 Recommended Path Back to Sockets

Appendix TypeScript
370 Quick Note Upcoming Videos
371 Introduction To TypeScript
372 Dynamic vs Static Typing
373 Strongly vs Weakly Typed
374 Static Typing In JavaScript
375 Quick Note Upcoming Videos
376 OPTIONAL Installing TypeScript Compiler
377 OPTIONAL Installing Node.js + TypeScript
378 TypeScript
379 TypeScript 2
380 TypeScript 3
381 Resources TypeScript Types
382 TypeScript 4
383 TypeScript 5
384 TypeScript 6
385 Resources Type VS Interface
386 TypeScript 7
387 Resources Type Assertion
388 TypeScript 8
389 TypeScript 9
390 TypeScript 10

Appendix SQL
391 Quick Note Upcoming Videos
392 Exercise Building Amazon
393 Exercise Building Amazon 2
394 Types Of Databases
395 Exercise What Is A Database
396 SQL Playground
397 What Is SQL
398 What Is A Query
399 Exercise Setting Up Your First Database
400 Imperative vs Declarative
401 History of SQL
402 Optional History of SQL Deep Dive
403 Exercises The Select Statement
404 SQL Standards
405 Tables
406 Columns
407 Rows
408 Primary And Foreign Keys
409 Relational vs NoSQL, PostgreSQL vs MongoDB Databases
410 Scalability
411 Sharding
412 Recommended Path Back to Node

BONUS SECTION
413 Bonus Lecture

Homepage