1 Complete Node.js Developer: Zero to Mastery Demo 02:51 2 06:23 3 Node.js - How We Got Here 09:20 4 08:20 5 How To Succeed In The Course 04:00 6 Latest Version Of Node.js 02:13 7 OPTIONAL: Installing Node.js 05:45 8 OPTIONAL: Windows Installation Tips 03:11 9 04:10 10 06:09 11 Setting Up Our Developer Environment 04:31 12 11:36 13 05:47 14 05:46 15 Introduction to Backend VS Frontend 08:56 16 09:39 17 10:58 18 libuv Internals Deep Dive 12:54 19 Synchronous vs Asynchronous 05:24 20 05:56 21 Non-Blocking Input & Output 03:33 22 Exercise: Is JavaScript Asynchronous? 02:28 23 Multi-Threading, Processes, and Threads 11:41 24 Is Node.js Multi-Threaded? 10:57 25 04:04 26 04:53 27 09:19 28 Comparing Node With PHP and Python 06:34 29 04:53 30 05:28 31 14:07 32 02:50 33 11:10 34 04:06 35 13:03 36 04:04 37 CommonJS vs ECMAScript Modules 04:12 38 Creating Our Own ECMAScript Modules 06:32 39 07:43 40 03:00 41 08:41 42 04:43 43 NPM: The Node Package Manager 04:40 44 Creating Our First NPM Package 09:24 45 01:36 46 Packages And The NPM Registry 01:57 47 Using Third Party Modules 11:12 48 09:55 49 02:38 50 package-lock.json and Versioning 09:43 51 Vulnerabilities In Dependencies 04:55 52 03:36 53 Installing NPM Tools: nodemon 09:57 54 02:59 55 03:30 56 Overview: The Bun Runtime 02:32 57 Exploring Planets With Node 01:50 58 Importing Kepler Space Telescope Data 04:53 59 Setting Up Our CSV Parser 05:25 60 Streaming Large Data Files 05:33 61 06:49 62 06:05 63 Finding Habitable Planets 08:27 64 Exploring Habitable Planets 07:19 65 05:25 66 Introduction to HTTP Responses and Requests 03:59 67 07:42 68 13:37 69 10:13 70 09:01 71 10:38 72 09:24 73 Cross Origin Resource Sharing (CORS) 10:30 74 POSTing Data to the Server 11:32 75 Requests and Responses as Streams 11:51 76 04:06 77 03:36 78 09:37 79 Express vs Next.js vs Koa 11:19 80 09:05 81 06:08 82 03:50 83 07:31 84 Writing Our Own Logging Middleware 10:26 85 16:22 86 Model View Controller (MVC) 07:39 87 Model View Controller in Express 18:31 88 16:39 89 11:40 90 Create Read Update and Delete (CRUD) 06:57 91 06:07 92 Serving Websites With Node 09:46 93 11:34 94 Layouts and Separation of Concerns 07:44 95 Introduction & Architecture 11:04 96 NASA Dashboard Front End Setup 05:48 97 NASA Dashboard Functionality 05:12 98 02:16 99 React.js Front End Code Walkthrough 18:11 100 12:33 101 15:33 102 07:23 103 Models vs Controllers vs Routers 04:42 104 05:31 105 15:41 106 Automating Full Stack Applications With NPM 13:45 107 Serving React.js Front End In Production 12:16 108 Logging Requests With Morgan 08:45 109 12:57 110 16:57 111 Serving Applications With Client Side Routing 05:59 112 Working With Data Models: Building a Data Access Layer 08:50 113 POST /launches: Creating Launches 1 13:16 114 POST /launches: Creating Launches 2 10:42 115 POST /launches: Validation For POST Requests 12:40 116 Connecting POST /launches With Front End Dashboard 13:40 117 DELETE /launches: Aborting a Launch 1 13:06 118 DELETE /launches: Aborting a Launch 2 12:01 119 Updating Our Architecture Diagram 11:43 120 03:27 121 14:22 122 Testing API Endpoints With Supertest: GET 08:04 123 Testing API Endpoints With Supertest: POST 09:10 124 Testing API Endpoints With Supertest: Error Cases 06:49 125 01:39 126 OPTIONAL: Migrating To Node's Built-in Test Runner 06:47 127 OPTIONAL: Third Party Assertions With Chai 02:20 128 Exercise: Imposter Syndrome 02:56 129 04:16 130 Building A Simple Blocking Server 10:21 131 Real Life Blocking Functions 08:48 132 Running Multiple Node Processes 03:19 133 04:18 134 12:28 135 Operating System Schedulers 03:40 136 Maximizing Cluster Performance 07:41 137 05:37 138 02:27 139 Using PM2 To Create Clusters 09:39 140 Managing Live Clusters With PM2 06:11 141 03:47 142 Improving Performance Of Our NASA Project 08:07 143 08:22 144 08:16 145 Introduction to Databases 03:47 146 08:11 147 Database Schemas & Schemaless Databases 03:46 148 Choosing a Database for our NASA Project 05:33 149 SQL vs MongoDB: Trends and Object-Relational Impedance Mismatch 08:19 150 SQL vs MongoDB: Schemas, References, and ACID Transactions 14:20 151 12:24 152 08:55 153 05:25 154 Creating Mongoose Schema for Launches 15:19 155 Exercise: Creating Mongoose Schema for Planets 05:30 156 Creating Models From Schemas 04:31 157 Mongoose Models vs MVC Models 04:16 158 Inserting And Updating Documents 08:10 159 06:49 160 08:21 161 Exploring Data Using Atlas 04:53 162 Updating Project Architecture 05:10 163 03:52 164 Excluding Fields From The Response 03:31 165 04:52 166 02:58 167 10:57 168 Auto Increment In MongoDB 07:29 169 Getting Latest Flight Number 05:59 170 09:01 171 Investigating A Mongoose Mystery 07:11 172 12:55 173 Updating Tests For Mongoose 1 15:03 174 Updating Tests For Mongoose 2 10:01 175 02:48 176 03:23 177 09:10 178 01:01 179 Exploring SpaceX Launches API 05:41 180 13:05 181 Loading SpaceX Data In Our API 14:52 182 Mapping SpaceX Data To Our Database 11:57 183 08:00 184 08:19 185 Persisting SpaceX Launches 06:41 186 Paginating Our Endpoints 1 07:58 187 Paginating Our Endpoints 2 15:28 188 03:49 189 03:34 190 Managing Secrets With Dotenv 09:05 191 05:10 192 Security and Authentication Overview 03:44 193 Encrypted Connections with SSL and TLS 06:29 194 Digital Certificates, Signing, and Man In The Middle Attacks 05:43 195 Setting Up Our Security Example 04:19 196 HTTPS With Node, Self Signed Certificates, and Public Key Cryptography 16:18 197 09:47 198 Authentication vs Authorization 07:29 199 05:12 200 11:04 201 14:33 202 05:41 203 OAuth 2.0 Authorization Code Flow 06:35 204 OAuth In Action with Single Sign On 15:16 205 Registering with the Google Authorization Server 14:12 206 Authentication Endpoints With Middleware 11:08 207 03:25 208 Dotenv for Client Secrets 08:24 209 Authentication With Google And OAuth 1 11:12 210 Authentication With Google And OAuth 2 11:46 211 Cookie Based Authentication 06:55 212 03:34 213 Server VS Client Side Sessions With Cookies 09:05 214 Session Middleware in Express 09:51 215 Setting Up OAuth Cookie Session 12:35 216 Sessions with the Latest Version of Passport.js 05:36 217 Reading and Writing the OAuth Session 1 13:03 218 Reading and Writing the OAuth Session 2 06:45 219 Restricting Access to Endpoints 07:54 220 07:13 221 03:16 222 Experimenting With Fake Sessions 05:12 223 05:55 224 Introduction to CI and CD 06:42 225 08:24 226 09:38 227 06:01 228 04:27 229 09:43 230 Setting Up GitHub Actions 05:37 231 Continuous Integration: Build Pipeline 12:03 232 08:38 233 GitHub Actions Marketplace 03:08 234 Continuous Integration: Test Pipeline 11:21 235 05:19 236 Databases With Continuous Integration 10:19 237 Populating Data For Continuous Integration 08:51 238 02:15 239 03:59 240 04:17 241 05:00 242 03:29 243 Running Our first Docker Container 05:39 244 01:40 245 14:03 246 Improving Our Dockerfile With Layers 13:23 247 02:17 248 Building NASA Project Docker Image 05:38 249 Running NASA Project in a Container 04:30 250 Pushing Images to Docker Hub 03:47 251 Exploring Amazon Web Services 06:29 252 Creating an EC2 Instance 1 07:51 253 Creating an EC2 Instance 2: Security 13:11 254 02:59 255 Connecting To Our EC2 Instance With SSH 07:49 256 Setting Up Our EC2 Server 05:46 257 10:39 258 08:04 259 08:16 260 GraphQL Queries In Action 05:48 261 GraphQL vs REST: Over-fetching & Under-fetching 10:53 262 10:09 263 Exploring GraphQL Implementations 03:25 264 11:02 265 Working With Deprecated Packages 03:20 266 Recommended: Migrating GraphQL Packages 05:07 267 04:26 268 Designing An E-Commerce Schema 16:02 269 03:40 270 Modularizing Large GraphQL Projects: Schemas 14:02 271 09:02 272 Modularizing Large GraphQL Projects: Resolvers 09:28 273 Filtering with Queries and Resolvers 10:21 274 Exercise: Query Products By ID 05:31 275 06:41 276 Implementing Mutations on the Server 10:11 277 Exercise: Add New Product Review 10:59 278 06:32 279 Building an Apollo Server with Node.js - Part 1 02:58 280 Building an Apollo Server with Node.js - Part 2 10:08 281 Building an Apollo Server with Node.js - Part 3 05:16 282 02:12 283 03:58 284 02:59 285 05:02 286 05:26 287 Introduction to socket.io 03:21 288 socket.io Client and Server APIs 08:44 289 Multiplayer Pong Overview 03:32 290 Reviewing Our Pong Front End 11:58 291 Multiplayer Pong Message Sequence 07:39 292 Setting Up a socket.io Server 04:31 293 04:04 294 Identifying Connected Clients 06:39 295 Listening for Events in the Pong Server 03:09 296 02:47 297 Handling Events in the Pong Client 07:16 298 Implementing the Game Logic: Paddle 09:21 299 Implementing the Game Logic: Ball 08:47 300 What Happens When You Disconnect? 05:24 301 Using Socket.io with Express 11:46 302 06:06 303 10:40 304 01:18