Complete Node.js Developer in 2022: Zero to Mastery

Complete Node.js Developer in 2022: Zero to Mastery

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 427 lectures (46h 21m) | 21.7 GB

Complete NodeJS Developer in 2022 (GraphQL, MongoDB, + more)

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 Your Classmates and Instructor
4 Nodejs How We Got Here
5 Nodejs Runtime
6 How To Succeed In The Course
7 Latest Version Of Nodejs
8 Course Projects Code Resources
9 Web Developer Monthly

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

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

Nodejs 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 indexjs
46 Should We Use indexjs

Nodejs 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 nodemodules Folder
52 Semantic Versioning
53 packagelockjson and Versioning
54 Vulnerabilities In Dependencies
55 Installing NPM Tools nodemon
56 LinkedIn Endorsements

Nodejs File IO Planets Project
57 Code For This Section
58 Exploring Planets With Node
59 Importing Kepler Space Telescope Data
60 Setting Up Our CSV Parser
61 Latest Version of CSV Parser
62 Streaming Large Data Files
63 Reading Our Planets Data
64 Parsing Our Planets Data
65 Finding Habitable Planets
66 Exploring Habitable Planets

Web Servers with Nodejs
67 Code For This Section
68 What is a Web Server
69 Introduction to HTTP Responses and Requests
70 HTTP Requests
71 HTTP Responses
72 Our First Webserver
73 HTTP APIs and Routing
74 Parameterized URLs
75 Same Origin Policy
76 Exercise Same Origin Policy
77 Cross Origin Resource Sharing CORS
78 POSTing Data to the Server
79 Requests and Responses as Streams
80 Web Servers Recap

First Expressjs API
81 Code For This Section
82 Why Express
83 Introduction to Express
84 Express vs Nextjs vs Koa
85 Route Parameters
86 Postman and Insomnia
87 Development Dependencies
88 Middleware
89 Writing Our Own Logging Middleware
90 POST Requests in Express
91 Model View Controller MVC
92 Model View Controller in Express
93 Express Routers
94 RESTful APIs
95 Create Read Update and Delete CRUD
96 Sending Files
97 Serving Websites With Node
98 Templating Engines
99 Layouts and Separation of Concerns

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

Testing APIs
130 Testing In Node
131 Testing APIs With Jest
132 Testing API Endpoints With Supertest GET
133 Testing API Endpoints With Supertest POST
134 Testing API Endpoints With Supertest Error Cases

Improving Node Performance
135 Code For This Section
136 Node Server Performance
137 Building A Simple Blocking Server
138 Real Life Blocking Functions
139 Running Multiple Node Processes
140 The Node Cluster Module
141 Clustering In Action
142 Maximizing Cluster Performance
143 Load Balancing
144 The PM2 Tool
145 Using PM2 To Create Clusters
146 Managing Live Clusters With PM2
147 Zero Downtime Restart
148 Improving Performance Of Our NASA Project
149 Worker Threads
150 Worker Threads In Action

Databases
151 Introduction to Databases
152 Recommended Path SQL
153 Comparing SQL vs NoSQL
154 Database Schemas & Schemaless Databases
155 Choosing a Database for our NASA Project
156 SQL vs MongoDB Trends and ObjectRelational Impedance Mismatch
157 SQL vs MongoDB Schemas References and ACID Transactions
158 Setting up MongoDB Atlas
159 Connecting to MongoDB
160 Connecting with the Latest Version of Mongoose
161 Mongoose
162 Creating Mongoose Schema for Launches
163 Exercise Creating Mongoose Schema for Planets
164 Reminder Destination Planets Dropdown
165 Creating Models From Schemas
166 Mongoose Models vs MVC Models
167 Creating and Inserting Documents
168 Finding Documents
169 The Upsert Operation
170 Exploring Data Using Atlas
171 Updating Project Architecture
172 ObjectIDs
173 Excluding Fields From The Response
174 Saving Launches
175 Listing All Launches
176 Referential Integrity
177 Auto Increment In MongoDB
178 Getting Latest Flight Number
179 Scheduling New Launches
180 Investigating A Mongoose Mystery
181 Aborting Launches
182 Aborting with the Latest MongoDB Driver
183 Updating Tests For Mongoose 1
184 Updating Tests For Mongoose 2
185 Fixing A Bug In Jest Open Handles

Working With REST APIs SpaceX Project
186 Working With SpaceX
187 The SpaceX API
188 Versioning Node APIs
189 Updating Our API Tests
190 Exploring SpaceX Launches API
191 Running Search Queries
192 Loading SpaceX Data In Our API
193 Mapping SpaceX Data To Our Database
194 Using Paginated APIs
195 Minimizing API Load
196 Persisting SpaceX Launches
197 Paginating Our Endpoints 1
198 Paginating Our Endpoints 2
199 Sorting Paginated Data
200 Cleaning Up Launch Data
201 Managing Secrets With Dotenv
202 Running API Tests With Dotenv
203 Securing Leaked Secrets

Node Security Authentication
204 Code For This Section
205 Security and Authentication Overview
206 Encrypted Connections with SSL and TLS
207 Digital Certificates Signing and Man In The Middle Attacks
208 Setting Up Our Security Example
209 HTTPS With Node Self Signed Certificates and Public Key Cryptography
210 Helmetjs
211 Authentication vs Authorization
212 Social Sign In
213 API Keys
214 JWT Tokens
215 The OAuth Standard
216 OAuth 20 Authorization Code Flow
217 OAuth In Action with Single Sign On
218 Registering with the Google Authorization Server
219 Authentication Endpoints With Middleware
220 Passportjs
221 Dotenv for Client Secrets
222 Authentication With Google And OAuth 1
223 Authentication With Google And OAuth 2
224 Cookie Based Authentication
225 Sessions
226 Server VS Client Side Sessions With Cookies
227 Session Middleware in Express
228 Setting Up OAuth Cookie Session
229 Sessions with the Latest Version of Passportjs
230 Reading and Writing the OAuth Session 1
231 Reading and Writing the OAuth Session 2
232 Restricting Access to Endpoints
233 Implementing Logout
234 Experimenting With Fake Sessions
235 Wrap Up and Next Steps
236 Resource Security Cheat Sheet

Continuous Integration and Delivery
237 Introduction to CI and CD
238 Continuous Integration
239 Continuous Delivery
240 Continuous Deployment
241 Pipelines
242 GitHub Actions
243 Setting Up GitHub Actions
244 Continuous Integration Build Pipeline
245 Build Pipeline In Action
246 GitHub Actions Marketplace
247 Continuous Integration Test Pipeline
248 Mocking Out Databases
249 Databases With Continuous Integration
250 Populating Data For Continuous Integration

Node Production and the Cloud Docker AWS
251 Deploying to the Cloud
252 Serverless vs Containers
253 Virtual Machines
254 What is a Container
255 Installing Docker
256 Running Our First Docker Container
257 Your DockerHub Account
258 Creating a Dockerfile
259 Improving Our Dockerfile With Layers
260 Updating Our API URL
261 Building NASA Project Docker Image
262 Running NASA Project in a Container
263 Pushing Images to Docker Hub
264 Exploring Amazon Web Services
265 Creating an EC2 Instance 1
266 Creating an EC2 Instance 2 Security
267 What is SSH
268 Connecting To Our EC2 Instance With SSH
269 Setting Up Our EC2 Server
270 Deploying Our NASA API

GraphQL
271 Code For This Section
272 GraphQL Overview
273 Our First GraphQL Query
274 GraphQL Queries In Action
275 GraphQL vs REST Overfetching & Underfetching
276 GraphQL vs REST Summary
277 Exploring GraphQL Implementations
278 GraphQL In Node
279 GraphiQL
280 Designing An ECommerce Schema
281 GraphQL Tools
282 Modularizing Large GraphQL Projects Schemas
283 Resolvers
284 Modularizing Large GraphQL Projects Resolvers
285 Filtering with Queries and Resolvers
286 Exercise Query Products By ID
287 Mutations In Action
288 Implementing Mutations on the Server
289 Exercise Add New Product Review
290 GraphQL With Apollo
291 Building an Apollo Server With Nodejs

Sockets with Nodejs
292 Code For This Section
293 Introduction to Sockets
294 Polling
295 What is a Socket
296 Sockets VS Polling
297 WebSockets
298 Introduction to socketio
299 socketio Client and Server APIs
300 Multiplayer Pong Overview
301 Recommended Path Pong Front End
302 Reviewing Our Pong Front End
303 Multiplayer Pong Message Sequence
304 Setting Up a socketio Server
305 Connecting to socketio
306 Handling CORS With Sockets
307 Identifying Connected Clients
308 Listening for Events in the Pong Server
309 Broadcasting Events
310 Handling Events in the Pong Client
311 Implementing the Game Logic Paddle
312 Implementing the Game Logic Ball
313 What Happens When You Disconnect
314 Using Socketio with Express
315 Namespaces
316 Rooms

Where To Go From Here
317 Thank You
318 Become An Alumni
319 Learning Guideline
320 LinkedIn Endorsements
321 Coding Challenges

Extra Deno vs Nodejs
322 Quick Note Upcoming Videos
323 Why Deno
324 Deno Runtime And V8 Engine
325 Deno Installation
326 Quick Note Installing Deno
327 MACLINUX Installation Tips
328 WINDOWS Installation Tips
329 Setting Up Our Developer Environment
330 Quick Note Official VS Code Plugin
331 Our First Deno App
332 Exercise Our First Deno App
333 The Most Important Video
334 Deno Internals And Architecture
335 Deno Metrics
336 Exercise Deno Architecture
337 Deno 15 Compiler Update
338 Deno Game Changers
339 Deno Game Changers 2
340 Will Deno Kill NodeJS
341 Single Executable To Rule Them All
342 Exciting Times Deno 16
343 Deno Security
344 Deno Permissions
345 Deno Permissions 2
346 Deno Permissions 3

Appendix How JavaScript Works
347 Quick Note Upcoming Videos
348 JavaScript Engine
349 Exercise Javascript Engine
350 Inside the Engine
351 Exercise JS Engine For All
352 Interpreters and Compilers
353 Inside the V8 Engine
354 Comparing Other Languages
355 Writing Optimized Code
356 WebAssembly
357 Call Stack and Memory Heap
358 Stack Overflow
359 Garbage Collection
360 Memory Leaks
361 Single Threaded
362 Exercise Issue With Single Thread
363 Javascript Runtime
364 Nodejs
365 Recommended Path Back To Node

Appendix Asynchronous JavaScript
366 Quick Note Upcoming Videos
367 Section Overview
368 Promises
369 ES8 Async Await
370 ES9 ES2018
371 ES9 ES2018 Async
372 Job Queue
373 Parallel Sequence and Race
374 ES2020 allSettled
375 Threads Concurrency and Parallelism
376 Recommended Path Back To Node

Appendix Pong Front End
377 Quick Note Upcoming Videos
378 Pong Project Overview
379 JS Create Canvas
380 JS RequestAnimationFrame
381 JS Game Over
382 Code Review
383 Recommended Path Back to Sockets

Appendix TypeScript
384 Quick Note Upcoming Videos
385 Introduction To TypeScript
386 Dynamic vs Static Typing
387 Strongly vs Weakly Typed
388 Static Typing In JavaScript
389 Quick Note Upcoming Videos
390 OPTIONAL Installing TypeScript Compiler
391 OPTIONAL Installing Nodejs TypeScript
392 TypeScript
393 TypeScript 2
394 TypeScript 3
395 Resources TypeScript Types
396 TypeScript 4
397 TypeScript 5
398 TypeScript 6
399 Resources Type VS Interface
400 TypeScript 7
401 Resources Type Assertion
402 TypeScript 8
403 TypeScript 9
404 TypeScript 10

Appendix SQL
405 Quick Note Upcoming Videos
406 Exercise Building Amazon
407 Exercise Building Amazon 2
408 Types Of Databases
409 Exercise What Is A Database
410 SQL Playground
411 What Is SQL
412 What Is A Query
413 Exercise Setting Up Your First Database
414 Imperative vs Declarative
415 History of SQL
416 Optional History of SQL Deep Dive
417 Exercises The Select Statement
418 SQL Standards
419 Tables
420 Columns
421 Rows
422 Primary And Foreign Keys
423 Relational vs NoSQL PostgreSQL vs MongoDB Databases
424 Scalability
425 Sharding
426 Recommended Path Back to Node

BONUS SECTION
427 Bonus Lecture

Homepage