Complete Node.js Developer in 2023: Zero to Mastery
46h 5s
English
Paid
January 25, 2024
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 2023. Go from Zero To Node Mastery.
More
- 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
Watch Online Complete Node.js Developer in 2023: Zero to Mastery
Join premium to watch
Go to premium
# | Title | Duration |
---|---|---|
1 | Course Outline | 06:23 |
2 | Node.js - How We Got Here | 09:20 |
3 | Node.js Runtime | 08:20 |
4 | How To Succeed In The Course | 04:00 |
5 | Latest Version Of Node.js | 01:17 |
6 | OPTIONAL: Installing Node.js | 06:34 |
7 | OPTIONAL: Windows Installation Tips | 03:06 |
8 | Node.js Release Cycle | 04:05 |
9 | The Node.js REPL | 06:09 |
10 | Setting Up Our Developer Environment | 04:31 |
11 | Our First Node App | 11:36 |
12 | Node.js VS JavaScript | 05:46 |
13 | The global Object | 05:46 |
14 | Introduction to Backend VS Frontend | 08:56 |
15 | What Node.js Includes | 09:39 |
16 | Node Internals Deep Dive | 10:58 |
17 | libuv Internals Deep Dive | 12:54 |
18 | Synchronous vs Asynchronous | 05:24 |
19 | Asynchronous Callbacks | 05:56 |
20 | Non-Blocking Input & Output | 03:33 |
21 | Exercise: Is JavaScript Asynchronous? | 02:28 |
22 | Multi-Threading, Processes, and Threads | 11:41 |
23 | Is Node.js Multi-Threaded? | 10:57 |
24 | The Event Loop | 04:04 |
25 | Callback Queues | 04:52 |
26 | Phases of the Event Loop | 09:19 |
27 | Comparing Node With PHP and Python | 06:34 |
28 | What Is Node.js Best At? | 04:53 |
29 | Observer Design Pattern | 05:28 |
30 | The Node Event Emitter | 14:07 |
31 | The require Function | 02:50 |
32 | Making HTTP Requests | 11:10 |
33 | Why Use Modules? | 04:06 |
34 | Creating Our Own Modules | 13:04 |
35 | Exporting From Modules | 04:04 |
36 | CommonJS vs ECMAScript Modules | 04:12 |
37 | Creating Our Own ECMAScript Modules | 06:32 |
38 | Module Caching | 07:43 |
39 | Using index.js | 08:41 |
40 | Should We Use index.js? | 04:43 |
41 | NPM: The Node Package Manager | 04:40 |
42 | Creating Our First NPM Package | 09:24 |
43 | Packages And The NPM Registry | 01:57 |
44 | Using Third Party Modules | 11:12 |
45 | The node_modules Folder | 09:55 |
46 | Semantic Versioning | 02:38 |
47 | package-lock.json and Versioning | 09:43 |
48 | Vulnerabilities In Dependencies | 04:55 |
49 | Installing NPM Tools: nodemon | 09:57 |
50 | Exploring Planets With Node | 01:50 |
51 | Importing Kepler Space Telescope Data | 04:53 |
52 | Setting Up Our CSV Parser | 05:25 |
53 | Streaming Large Data Files | 05:33 |
54 | Reading Our Planets Data | 06:49 |
55 | Parsing Our Planets Data | 06:05 |
56 | Finding Habitable Planets | 08:27 |
57 | Exploring Habitable Planets | 07:19 |
58 | What is a Web Server? | 05:25 |
59 | Introduction to HTTP Responses and Requests | 03:58 |
60 | HTTP Requests | 07:42 |
61 | HTTP Responses | 13:37 |
62 | Our First Webserver | 10:13 |
63 | HTTP APIs and Routing | 09:01 |
64 | Parameterized URLs | 10:38 |
65 | Same Origin Policy | 09:24 |
66 | Cross Origin Resource Sharing (CORS) | 10:30 |
67 | POSTing Data to the Server | 11:32 |
68 | Requests and Responses as Streams | 11:51 |
69 | Web Servers Recap | 04:06 |
70 | Why Express? | 03:36 |
71 | Introduction to Express | 09:37 |
72 | Express vs Next.js vs Koa | 11:19 |
73 | Route Parameters | 09:05 |
74 | Postman and Insomnia | 06:08 |
75 | Development Dependencies | 03:50 |
76 | Middleware | 07:31 |
77 | Writing Our Own Logging Middleware | 10:26 |
78 | POST Requests in Express | 16:22 |
79 | Model View Controller (MVC) | 07:39 |
80 | Model View Controller in Express | 18:31 |
81 | Express Routers | 16:39 |
82 | RESTful APIs | 11:40 |
83 | Create Read Update and Delete (CRUD) | 06:57 |
84 | Sending Files | 06:07 |
85 | Serving Websites With Node | 09:46 |
86 | Templating Engines | 11:34 |
87 | Layouts and Separation of Concerns | 07:44 |
88 | Introduction & Architecture | 11:03 |
89 | NASA Dashboard Front End Setup | 05:48 |
90 | NASA Dashboard Functionality | 05:12 |
91 | What You Need To Know | 02:15 |
92 | React.js Front End Code Walkthrough | 18:11 |
93 | API Server Setup | 12:33 |
94 | GET /planets | 15:33 |
95 | CORS Middleware | 07:23 |
96 | Models vs Controllers vs Routers | 04:42 |
97 | The Planets Model | 05:31 |
98 | Loading Data On Startup | 15:41 |
99 | Automating Full Stack Applications With NPM | 13:45 |
100 | Serving React.js Front End In Production | 12:16 |
101 | Logging Requests With Morgan | 08:45 |
102 | The Launches Model | 12:57 |
103 | GET /launches | 16:57 |
104 | Serving Applications With Client Side Routing | 05:59 |
105 | Working With Data Models: Building a Data Access Layer | 08:50 |
106 | POST /launches: Creating Launches 1 | 13:16 |
107 | POST /launches: Creating Launches 2 | 10:42 |
108 | POST /launches: Validation For POST Requests | 12:40 |
109 | Connecting POST /launches With Front End Dashboard | 13:40 |
110 | DELETE /launches: Aborting a Launch 1 | 13:06 |
111 | DELETE /launches: Aborting a Launch 2 | 12:01 |
112 | Updating Our Architecture Diagram | 11:43 |
113 | Testing In Node | 03:27 |
114 | Testing APIs With Jest | 14:22 |
115 | Testing API Endpoints With Supertest: GET | 08:04 |
116 | Testing API Endpoints With Supertest: POST | 09:10 |
117 | Testing API Endpoints With Supertest: Error Cases | 06:49 |
118 | Node Server Performance | 04:16 |
119 | Building A Simple Blocking Server | 10:21 |
120 | Real Life Blocking Functions | 08:48 |
121 | Running Multiple Node Processes | 03:19 |
122 | The Node Cluster Module | 04:18 |
123 | Clustering In Action | 12:28 |
124 | Maximizing Cluster Performance | 07:41 |
125 | Load Balancing | 05:37 |
126 | The PM2 Tool | 02:27 |
127 | Using PM2 To Create Clusters | 09:39 |
128 | Managing Live Clusters With PM2 | 06:11 |
129 | Zero Downtime Restart | 03:47 |
130 | Improving Performance Of Our NASA Project | 08:07 |
131 | Worker Threads | 08:22 |
132 | Worker Threads In Action | 08:16 |
133 | Introduction to Databases | 03:47 |
134 | Comparing SQL vs NoSQL | 08:11 |
135 | Database Schemas & Schemaless Databases | 03:46 |
136 | Choosing a Database for our NASA Project | 05:33 |
137 | SQL vs MongoDB: Trends and Object-Relational Impedance Mismatch | 08:19 |
138 | SQL vs MongoDB: Schemas, References, and ACID Transactions | 14:20 |
139 | Setting up MongoDB Atlas | 12:56 |
140 | Connecting to MongoDB | 08:55 |
141 | Mongoose | 05:25 |
142 | Creating Mongoose Schema for Launches | 15:19 |
143 | Exercise: Creating Mongoose Schema for Planets | 05:30 |
144 | Creating Models From Schemas | 04:31 |
145 | Mongoose Models vs MVC Models | 04:16 |
146 | Inserting And Updating Documents | 08:10 |
147 | Finding Documents | 06:49 |
148 | The Upsert Operation | 08:21 |
149 | Exploring Data Using Atlas | 04:53 |
150 | Updating Project Architecture | 05:10 |
151 | ObjectIDs | 03:52 |
152 | Excluding Fields From The Response | 03:31 |
153 | Saving Launches | 04:52 |
154 | Listing All Launches | 02:58 |
155 | Referential Integrity | 10:57 |
156 | Auto Increment In MongoDB | 07:29 |
157 | Getting Latest Flight Number | 05:59 |
158 | Scheduling New Launches | 09:01 |
159 | Investigating A Mongoose Mystery | 07:11 |
160 | Aborting Launches | 12:55 |
161 | Updating Tests For Mongoose 1 | 15:03 |
162 | Updating Tests For Mongoose 2 | 10:01 |
163 | Working With SpaceX | 02:48 |
164 | The SpaceX API | 03:23 |
165 | Versioning Node APIs | 09:10 |
166 | Updating Our API Tests | 01:01 |
167 | Exploring SpaceX Launches API | 05:40 |
168 | Running Search Queries | 13:05 |
169 | Loading SpaceX Data In Our API | 14:52 |
170 | Mapping SpaceX Data To Our Database | 11:57 |
171 | Using Paginated APIs | 08:00 |
172 | Minimizing API Load | 08:19 |
173 | Persisting SpaceX Launches | 06:41 |
174 | Paginating Our Endpoints 1 | 07:58 |
175 | Paginating Our Endpoints 2 | 15:28 |
176 | Sorting Paginated Data | 03:49 |
177 | Cleaning Up Launch Data | 03:34 |
178 | Managing Secrets With Dotenv | 09:05 |
179 | Securing Leaked Secrets | 05:10 |
180 | Security and Authentication Overview | 03:44 |
181 | Encrypted Connections with SSL and TLS | 06:29 |
182 | Digital Certificates, Signing, and Man In The Middle Attacks | 05:43 |
183 | Setting Up Our Security Example | 04:19 |
184 | HTTPS With Node, Self Signed Certificates, and Public Key Cryptography | 16:18 |
185 | Helmet.js | 09:47 |
186 | Authentication vs Authorization | 07:29 |
187 | Social Sign In | 05:12 |
188 | API Keys | 11:04 |
189 | JWT Tokens | 14:33 |
190 | The OAuth Standard | 05:41 |
191 | OAuth 2.0 Authorization Code Flow | 06:35 |
192 | OAuth In Action with Single Sign On | 15:16 |
193 | Registering with the Google Authorization Server | 14:12 |
194 | Authentication Endpoints With Middleware | 11:08 |
195 | Passport.js | 03:25 |
196 | Dotenv for Client Secrets | 08:24 |
197 | Authentication With Google And OAuth 1 | 11:12 |
198 | Authentication With Google And OAuth 2 | 11:46 |
199 | Cookie Based Authentication | 06:55 |
200 | Sessions | 03:34 |
201 | Server VS Client Side Sessions With Cookies | 09:05 |
202 | Session Middleware in Express | 09:51 |
203 | Setting Up OAuth Cookie Session | 12:35 |
204 | Reading and Writing the OAuth Session 1 | 13:03 |
205 | Reading and Writing the OAuth Session 2 | 06:45 |
206 | Restricting Access to Endpoints | 07:54 |
207 | Implementing Logout | 07:13 |
208 | Experimenting With Fake Sessions | 05:12 |
209 | Wrap Up and Next Steps | 05:55 |
210 | Introduction to CI and CD | 06:42 |
211 | Continuous Integration | 08:24 |
212 | Continuous Development | 09:38 |
213 | Continuous Deployment | 06:01 |
214 | Pipelines | 04:27 |
215 | GitHub Actions | 09:43 |
216 | Setting Up GitHub Actions | 05:37 |
217 | Continuous Integration: Build Pipeline | 12:03 |
218 | Build Pipeline In Action | 08:38 |
219 | GitHub Actions Marketplace | 03:08 |
220 | Continuous Integration: Test Pipeline | 11:21 |
221 | Mocking Out Databases | 05:19 |
222 | Databases With Continuous Integration | 10:19 |
223 | Populating Data For Continuous Integration | 08:51 |
224 | Deploying to the Cloud | 02:15 |
225 | Serverless vs Containers | 03:59 |
226 | Virtual Machines | 04:17 |
227 | What is a Container? | 05:00 |
228 | Installing Docker | 03:29 |
229 | Running Our first Docker Container | 05:39 |
230 | Your DockerHub Account | 01:40 |
231 | Creating a Dockerfile | 14:03 |
232 | Improving Our Dockerfile With Layers | 13:23 |
233 | Updating Our API URL | 02:17 |
234 | Building NASA Project Docker Image | 05:37 |
235 | Running NASA Project in a Container | 04:30 |
236 | Pushing Images to Docker Hub | 03:47 |
237 | Exploring Amazon Web Services | 06:29 |
238 | Creating an EC2 Instance 1 | 07:51 |
239 | Creating an EC2 Instance 2: Security | 13:11 |
240 | What is SSH? | 02:59 |
241 | Connecting To Our EC2 Instance With SSH | 07:49 |
242 | Setting Up Our EC2 Server | 05:46 |
243 | Deploying Our NASA API | 10:39 |
244 | GraphQL Overview | 08:04 |
245 | Our First GraphQL Query | 08:16 |
246 | GraphQL Queries In Action | 05:48 |
247 | GraphQL vs REST: Over-fetching & Under-fetching | 10:53 |
248 | GraphQL vs REST Summary | 10:09 |
249 | Exploring GraphQL Implementations | 03:25 |
250 | GraphQL In Node | 11:02 |
251 | GraphiQL | 04:26 |
252 | Designing An E-Commerce Schema | 16:02 |
253 | GraphQL Tools | 03:40 |
254 | Modularizing Large GraphQL Projects: Schemas | 14:02 |
255 | Resolvers | 09:02 |
256 | Modularizing Large GraphQL Projects: Resolvers | 09:28 |
257 | Filtering with Queries and Resolvers | 10:21 |
258 | Exercise: Query Products By ID | 05:31 |
259 | Mutations In Action | 06:41 |
260 | Implementing Mutations on the Server | 10:11 |
261 | Exercise: Add New Product Review | 10:59 |
262 | GraphQL With Apollo | 07:16 |
263 | Building an Apollo Server With Node.js | 13:20 |
264 | Introduction to Sockets | 02:12 |
265 | Polling | 03:58 |
266 | What is a Socket? | 02:59 |
267 | Sockets VS Polling | 05:02 |
268 | WebSockets | 05:26 |
269 | Introduction to socket.io | 03:21 |
270 | socket.io Client and Server APIs | 08:44 |
271 | Multiplayer Pong Overview | 03:32 |
272 | Reviewing Our Pong Front End | 11:58 |
273 | Multiplayer Pong Message Sequence | 07:39 |
274 | Setting Up a socket.io Server | 04:31 |
275 | Connecting to socket.io | 04:04 |
276 | Identifying Connected Clients | 06:39 |
277 | Listening for Events in the Pong Server | 03:09 |
278 | Broadcasting Events | 02:47 |
279 | Handling Events in the Pong Client | 07:16 |
280 | Implementing the Game Logic: Paddle | 09:21 |
281 | Implementing the Game Logic: Ball | 08:47 |
282 | What Happens When You Disconnect? | 05:24 |
283 | Using Socket.io with Express | 11:46 |
284 | Namespaces | 06:06 |
285 | Rooms | 10:40 |
286 | Why Deno? | 06:01 |
287 | Deno Runtime And V8 Engine | 05:26 |
288 | Deno Installation | 04:42 |
289 | MAC/LINUX Installation Tips | 05:34 |
290 | WINDOWS Installation Tips | 01:18 |
291 | Setting Up Our Developer Environment | 05:16 |
292 | Our First Deno App | 08:19 |
293 | The Most Important Video | 01:00 |
294 | Deno Internals And Architecture | 12:40 |
295 | Deno Metrics | 06:51 |
296 | Exercise: Deno Architecture | 04:02 |
297 | Deno Game Changers | 09:59 |
298 | Deno Game Changers 2 | 07:57 |
299 | Will Deno Kill NodeJS? | 02:09 |
300 | Single Executable To Rule Them All | 04:09 |
301 | Deno Security | 08:10 |
302 | Deno Permissions | 06:25 |
303 | Deno Permissions 2 | 03:10 |
304 | Deno Permissions 3 | 05:11 |
305 | JavaScript Engine | 05:29 |
306 | Exercise: Javascript Engine | 00:57 |
307 | Inside the Engine | 04:06 |
308 | Exercise: JS Engine For All | 02:34 |
309 | Interpreters and Compilers | 06:22 |
310 | Inside the V8 Engine | 08:57 |
311 | Comparing Other Languages | 04:16 |
312 | Writing Optimized Code | 08:54 |
313 | WebAssembly | 03:16 |
314 | Call Stack and Memory Heap | 14:38 |
315 | Stack Overflow | 03:22 |
316 | Garbage Collection | 04:31 |
317 | Memory Leaks | 06:35 |
318 | Single Threaded | 01:59 |
319 | Exercise: Issue With Single Thread | 02:41 |
320 | Javascript Runtime | 14:08 |
321 | Node.js | 06:28 |
322 | Section Overview | 04:52 |
323 | Promises | 22:27 |
324 | ES8 - Async Await | 15:23 |
325 | ES9 (ES2018) | 05:22 |
326 | ES9 (ES2018) - Async | 11:12 |
327 | Job Queue | 06:56 |
328 | Parallel, Sequence and Race | 10:01 |
329 | ES2020: allSettled() | 04:23 |
330 | Threads, Concurrency and Parallelism | 11:28 |
331 | Pong Project Overview | 02:04 |
332 | JS - Create Canvas | 15:51 |
333 | JS - RequestAnimationFrame | 17:45 |
334 | JS - Game Over | 13:15 |
335 | Code Review | 05:18 |
336 | Introduction To TypeScript | 01:28 |
337 | Dynamic vs Static Typing | 11:51 |
338 | Strongly vs Weakly Typed | 03:19 |
339 | Static Typing In JavaScript | 09:46 |
340 | OPTIONAL: Installing TypeScript Compiler | 03:51 |
341 | TypeScript | 11:34 |
342 | TypeScript 2 | 03:17 |
343 | TypeScript 3 | 07:25 |
344 | TypeScript 4 | 05:39 |
345 | TypeScript 5 | 06:40 |
346 | TypeScript 6 | 04:49 |
347 | TypeScript 7 | 03:35 |
348 | TypeScript 8 | 06:05 |
349 | TypeScript 9 | 01:22 |
350 | TypeScript 10 | 01:24 |
351 | Exercise: Building Amazon | 05:35 |
352 | Exercise: Building Amazon 2 | 05:29 |
353 | 5 Types Of Databases | 05:38 |
354 | Exercise: What Is A Database? | 01:12 |
355 | SQL Playground | 01:55 |
356 | What Is SQL? | 02:18 |
357 | What Is A Query? | 06:28 |
358 | Imperative vs Declarative | 03:25 |
359 | History of SQL | 02:22 |
360 | SQL Standards | 04:26 |
361 | Tables | 03:46 |
362 | Columns | 04:08 |
363 | Rows | 02:28 |
364 | Primary And Foreign Keys | 05:04 |
365 | Relational vs NoSQL, PostgreSQL vs MongoDB Databases | 10:36 |
366 | Scalability | 04:20 |
367 | Sharding | 03:05 |
Similar courses to Complete Node.js Developer in 2023: Zero to Mastery
Node.js CLI | Build Node.js Command-line Automation Dev-tools
Duration 9 hours 3 minutes 32 seconds
Course
Node JS Cluster with PM2, RabbitMQ, Redis and Nginx
Duration 2 hours 24 minutes 39 seconds
Course
JSON Web Token (JWT) Authentication with Node.js
Duration 32 minutes 33 seconds
Course
MERN eCommerce From Scratch
Duration 14 hours 49 minutes 45 seconds
Course
Instagram Clone Coding 3.0
Duration 20 hours 48 minutes 39 seconds
Course
NodeJS - The Complete Guide (incl. MVC, REST APIs, GraphQL)
Duration 38 hours 51 minutes 43 seconds
Course
The Modern GraphQL Bootcamp (with Node.js and Apollo)
Duration 23 hours 26 minutes 42 seconds
Course
The Node.js Master Class - No Frameworks, No NPM | Node v8.x
Duration 15 hours 24 minutes 23 seconds
Course
Microservices with NodeJS, React, Typescript and Kubernetes
Duration 95 hours 13 minutes 4 seconds
Course