Section 1 : Introduction

Lecture 1 INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM Pdf
Lecture 2 What is Node 4:42
Lecture 3 About Proctor Testing Pdf
Lecture 4 Installing Node 9:39
Lecture 5 Understanding the Role & Usage of Node 7:33
Lecture 6 Course Outline 8:3
Lecture 7 How To Get The Most Out Of The Course 3:54
Lecture 8 Working with the REPL vs Using Files 2:59
Lecture 9 Using the Attached Source Code Text

Section 2 : Optional JavaScript - A Quick Refresher

Lecture 10 Module Introduction 1:38
Lecture 11 JavaScript in a Nutshell 2:39
Lecture 12 Refreshing the Core Syntax 4:38
Lecture 13 let & const 2:30
Lecture 14 Understanding Arrow Functions 5:22
Lecture 15 Working with Objects, Properties & Methods 3:23
Lecture 16 Arrays & Array Methods 4:20
Lecture 17 Arrays, Objects & Reference Types 2:17
Lecture 18 Understanding Spread & Rest Operators 6:46
Lecture 19 Destructuring 5:41
Lecture 20 Async Code & Promises 10:33
Lecture 21 Template Literals Text
Lecture 22 Wrap Up 0:51
Lecture 23 Useful Resources & Links Text

Section 3 : Understanding the Basics

Lecture 23 Module Introduction 4:12
Lecture 24 How The Web Works 1:51
Lecture 25 Creating a Node Server 13:22
Lecture 26 The Node Lifecycle & Event Loop 4:53
Lecture 27 Controlling the Node Text
Lecture 28 Understanding Requests 5:37
Lecture 29 Sending Responses 3:10
Lecture 30 Request & Response Headers Text
Lecture 31 Routing Requests 5:48
Lecture 32 Redirecting Requests 4:11
Lecture 33 Parsing Request Bodies 11:12
Lecture 34 Understanding Event Driven Code Execution 6:0
Lecture 35 Blocking and Non-Blocking Code 5:4
Lecture 36 Node 12:1
Lecture 37 Using the Node Modules System 10:6
Lecture 38 Wrap Up 5:15
Lecture 39 Useful Resources & Links Text

Section 4 : Improved Development Workflow and Debugging

Lecture 40 Module Introduction 0:40
Lecture 41 Understanding NPM Scripts 7:4
Lecture 42 Installing 3rd Party Packages 8:20
Lecture 43 Global Features vs Core Modules vs Third-Party Modules Text
Lecture 44 Using Nodemon for Autorestarts 1:37
Lecture 45 Global & Local npm Packages Text
Lecture 46 Understanding different Error Types 1:49
Lecture 47 Finding & Fixing Syntax Errors 3:10
Lecture 48 Dealing with Runtime Errors 2:47
Lecture 49 Logical Errors 6:33
Lecture 50 Using the Debugger 3:11
Lecture 51 Restarting the Debugger Automatically After Editing our App 6:22
Lecture 52 Debugging Node Text
Lecture 53 Changing Variables in the Debug Console 1:26
Lecture 54 Wrap Up 3:14
Lecture 55 Useful Resources & Links Text

Section 5 : Working with Express

Lecture 56 Module Introduction 2:15
Lecture 57 What is Express 3:44
Lecture 58 Installing Express 3:47
Lecture 59 Adding Middleware 5:14
Lecture 60 How Middleware Works 2:59
Lecture 61 Express 3:42
Lecture 62 Handling Different Routes 4:59
Lecture 63 Parsing Incoming Requests 8:0
Lecture 64 Limiting Middleware Execution to POST Requests 1:49
Lecture 65 Using Express Router 8:5
Lecture 66 Adding a 404 Error Page 2:30
Lecture 67 Filtering Paths 3:38
Lecture 68 Creating HTML Pages 5:9
Lecture 69 Serving HTML Pages 7:20
Lecture 70 Returning a 404 Page 2:1
Lecture 71 A Hint! Text
Lecture 72 Using a Helper Function for Navigation 3:38
Lecture 73 Styling our Pages 13:58
Lecture 74 Serving Files Statically 7:49
Lecture 75 Wrap Up 3:37
Lecture 76 Useful Resources & Links Text

Section 6 : Working with Dynamic Content & Adding Templating Engines

Lecture 77 Module Introduction 2:31
Lecture 78 Sharing Data Across Requests & Users 8:5
Lecture 79 Templating Engines - An Overview 4:40
Lecture 80 Installing & Implementing Pug 11:4
Lecture 81 Outputting Dynamic Content 11:3
Lecture 82 Official Pug Docs Text
Lecture 83 Converting HTML Files to Pug 5:56
Lecture 84 Adding a Layout 5:35
Lecture 85 Finishing the Pug Template 5:50
Lecture 86 Avoiding an Error Text
Lecture 87 Working with Handlebars 5:8
Lecture 88 Converting our Project to Handlebars 7:41
Lecture 89 Adding the Layout to Handlebars 8:41
Lecture 90 Working with EJS 8:19
Lecture 91 Working on the Layout with Partials 9:33
Lecture 92 Wrap Up 3:47
Lecture 93 [OPTIONAL] Assignment Solution 25:2
Lecture 94 Useful Resources & Links Text

Section 7 : The Model View Controller (MVC)

Lecture 95 Module Introduction 0:52
Lecture 96 What is the MVC 2:49
Lecture 97 Adding Controllers 9:21
Lecture 98 Finishing the Controllers 2:37
Lecture 99 Adding a Product Model 8:5
Lecture 100 Storing Data in Files Via the Model 9:39
Lecture 101 Fetching Data from Files Via the Model 3:56
Lecture 102 Refactoring the File Storage Code 4:25
Lecture 103 Wrap Up 2:15
Lecture 104 Useful Resources & Links Text

Section 8 : Optional Enhancing the App

Lecture 105 Module Introduction 1:21
Lecture 106 Creating the Shop Structure 5:35
Lecture 107 Working on the Navigation 2:50
Lecture 108 Registering the Routes 11:5
Lecture 109 Storing Product Data 5:16
Lecture 110 Displaying Product Data 3:2
Lecture 111 Editing & Deleting Products 4:48
Lecture 112 Adding Another Item 2:8
Lecture 113 Useful Resources & Links Text

Section 9 : Dynamic Routes & Advanced Models

Lecture 114 Module Introduction 1:7
Lecture 115 Preparations 1:24
Lecture 116 Applied Changes Text
Lecture 117 Adding the Product ID to the Path 4:34
Lecture 118 Extracting Dynamic Params 4:32
Lecture 119 Loading Product Detail Data 4:53
Lecture 120 Rendering the Product Detail View 5:27
Lecture 121 Passing Data with POST Requests 7:19
Lecture 122 Adding a Cart Model 12:29
Lecture 123 Using Query Params 7:55
Lecture 124 Pre-Populating the Edit Product Page with Data 6:46
Lecture 125 Linking to the Edit Page 2:20
Lecture 126 Editing the Product Data 8:59
Lecture 127 Adding the Product-Delete Functionality 5:35
Lecture 128 Deleting Cart Items 8:11
Lecture 129 Displaying Cart Items on the Cart Page 8:45
Lecture 130 Deleting Cart Items 5:25
Lecture 131 Fixing a Delete Product Bug 1:32
Lecture 132 Wrap Up 1:46
Lecture 133 Useful Resources & Links Text

Section 10 : SQL Introduction

Lecture 134 Module Introduction 1:33
Lecture 135 Choosing a Database 4:18
Lecture 136 NoSQL Introduction 4:21
Lecture 137 Comparing SQL and NoSQL 5:6
Lecture 138 Setting Up MySQL 7:16
Lecture 139 Connecting our App to the SQL Database 6:50
Lecture 140 Basic SQL & Creating a Table 4:8
Lecture 141 Retrieving Data 3:0
Lecture 142 Fetching Products 6:31
Lecture 143 Fetching Products - Time to Practice 1:4
Lecture 144 Inserting Data Into the Database 4:12
Lecture 145 Fetching a Single Product with the where Condition 2:57
Lecture 146 Wrap Up 1:25
Lecture 147 Useful Resources & Links Text

Section 11 : Understanding Sequelize

Lecture 148 Module Introduction 1:27
Lecture 149 What is Sequelize 2:35
Lecture 150 Connecting to the Database 3:58
Lecture 151 Defining a Model 5:48
Lecture 152 Syncing JS Definitions to the Database 4:30
Lecture 153 Inserting Data & Creating a Product 4:49
Lecture 154 MUST READ findById() in Sequelize 5 Text
Lecture 155 Retrieving Data & Finding Products 3:1
Lecture 156 Getting a Single Product with the where Condition 4:31
Lecture 157 Fetching Admin Products 1:26
Lecture 158 Updating Products 5:18
Lecture 159 Deleting Products 2:49
Lecture 160 Creating a User Model 2:49
Lecture 161 Adding a One-To-Many Relationship 5:55
Lecture 162 Creating & Managing a Dummy User 6:2
Lecture 163 Using Magic Association Methods 3:42
Lecture 164 Fetching Related Products 2:46
Lecture 165 One-To-Many & Many-To-Many Relations 6:4
Lecture 166 Creating & Fetching a Cart 5:45
Lecture 167 Adding New Products to the Cart 6:43
Lecture 168 Adding Existing Products & Retrieving Cart Items 4:55
Lecture 169 Deleting Related Items & Deleting Cart Products 2:25
Lecture 170 Adding an Order Model 4:19
Lecture 171 Storing Cartitems as Orderitems 8:19
Lecture 172 Resetting the Cart & Fetching and Outputting Orders 9:54
Lecture 173 Wrap Up 1:50
Lecture 174 Useful Resources & Links Text

Section 12 : Working with NoSQL & Using MongoDB

Lecture 175 Module Introduction 1:17
Lecture 176 What is MongoDB 3:57
Lecture 177 Relations in NoSQL 3:58
Lecture 178 Setting Up MongoDB 4:48
Lecture 179 Installing the MongoDB Driver 7:2
Lecture 180 Creating the Database Connection 3:25
Lecture 181 Finishing the Database Connection 4:21
Lecture 182 Using the Database Connection 5:15
Lecture 183 Creating Products 2:8
Lecture 184 Understanding the MongoDB Compass 2:38
Lecture 185 Fetching All Products 4:35
Lecture 186 Fetching a Single Product 7:45
Lecture 187 Making the Edit & Delete Buttons Work Again 2:22
Lecture 188 Working on the Product Model to Edit our Product 7:14
Lecture 189 Finishing the Update Product Code 3:57
Lecture 190 One Note About Updating Products 1:47
Lecture 191 Deleting Products 3:30
Lecture 192 Fixing the Add Product Functionality 1:28
Lecture 193 Creating New Users 7:0
Lecture 194 Storing the User in our Database 5:40
Lecture 195 Working on Cart Items & Orders 7:13
Lecture 196 Adding the Add to Cart Functionality
Lecture 197 Storing Multiple Products in the Cart 7:1
Lecture 198 Displaying the Cart Items
Lecture 199 Fixing a Bug 1:2
Lecture 200 Deleting Cart Items 4:2
Lecture 201 Adding an Order 4:37
Lecture 202 Adding Relational Order Data 6:22
Lecture 203 Getting Orders 3:21
Lecture 204 Removing Deleted Items From the Cart 2:59
Lecture 205 Wrap Up 2:19
Lecture 206 Useful Resources & Links Text
Lecture 207 Two Adjustments (behind the scenes) Text

Section 13 : Working with Mongoose

Lecture 208 Module Introduction 1:24
Lecture 209 What is Mongoose 2:5
Lecture 210 Connecting to the MongoDB Server with Mongoose 4:47
Lecture 211 Creating the Product Schema 6:1
Lecture 212 Saving Data Through Mongoose 6:11
Lecture 213 Fetching All Products 2:28
Lecture 214 Fetching a Single Product 1:25
Lecture 215 Updating Products 4:14
Lecture 216 Deleting Products 1:20
Lecture 217 Adding and Using a User Model 6:36
Lecture 218 Using Relations in Mongoose 3:44
Lecture 219 One Important Thing About Fetching Relations 3:54
Lecture 220 Working on the Shopping Cart 5:25
Lecture 221 Loading the Cart 5:12
Lecture 222 Deleting Cart Items
Lecture 223 Creating & Getting Orders 9:57
Lecture 224 Storing All Order Related Data 1:52
Lecture 225 Clearing the Cart After Storing an Order 1:59
Lecture 226 Getting & Displaying the Orders 3:41
Lecture 227 Wrap Up 1:37
Lecture 228 Useful Resources & Links Text

Section 14 : Sessions & Cookies

Lecture 229 Module Introduction 0:46
Lecture 230 What is a Cookie 1:58
Lecture 231 The Current Project Status 2:18
Lecture 232 Optional Creating the Login Form 6:23
Lecture 233 Adding the Request Driven Login Solution 7:41
Lecture 234 Setting a Cookie 5:55
Lecture 235 Manipulating Cookies 1:58
Lecture 236 Configuring Cookies 5:44
Lecture 237 What is a Session 2:59
Lecture 238 Initializing the Session Middleware 2:44
Lecture 239 Using the Session Middleware 4:14
Lecture 240 Using MongoDB to Store Sessions 6:0
Lecture 241 Sessions & Cookies - A Short Summary 1:53
Lecture 242 Deleting a Cookie 4:35
Lecture 243 Fixing Some Minor Bugs 4:28
Lecture 244 Making Add to Cart Work Again 6:46
Lecture 245 Two Tiny Improvements 3:12
Lecture 246 Wrap Up 3:43
Lecture 247 Code Adjustments Text
Lecture 248 Useful Resources & Links Text

Section 15 : Adding Authentication

Lecture 249 Module Introduction
Lecture 250 What is Authentication 1:23
Lecture 251 How is Authentication Implemented 2:5
Lecture 252 Our Updated Project Status 2:26
Lecture 253 Implementing an Authentication Flow 7:35
Lecture 254 Encrypting Passwords 4:36
Lecture 255 Adding a Tiny Code Improvement 1:21
Lecture 256 Adding the Signin Functionality 6:22
Lecture 257 Working on Route Protection 2:13
Lecture 258 Using Middleware to Protect Routes 4:38
Lecture 259 Understanding CSRF Attacks 3:23
Lecture 260 Using a CSRF Token 6:57
Lecture 261 Adding CSRF Protection 4:24
Lecture 262 Fixing the Order Button 1:17
Lecture 263 Providing User Feedback 7:10
Lecture 264 Optional Styling Error Messages 3:33
Lecture 265 Finishing the Flash Messages 2:20
Lecture 266 Adding Additional Flash Messages 2:21
Lecture 267 Wrap Up 2:32
Lecture 268 Useful Resources & Links Text

Section 16 : Sending Emails

Lecture 269 Module Introduction 0:47
Lecture 270 How Does Sending Emails Work 1:34
Lecture 271 Using SendGrid 1:25
Lecture 272 Using Nodemailer to Send an Email 5:10
Lecture 273 Potential Limitation for Large Scale Apps 1:29
Lecture 274 Useful Resources & Links Text

Section 17 : Advanced Authentication

Lecture 275 Module Introduction 0:42
Lecture 276 Resetting Passwords 3:3
Lecture 277 Implementing the Token Logic 7:41
Lecture 278 Creating the Token 1:28
Lecture 279 Creating the Reset Password Form 5:27
Lecture 280 Adding Logic to Update the Password 6:35
Lecture 281 Why we Need Authorization 1:58
Lecture 282 Adding Authorization 2:8
Lecture 283 Adding Protection to Post Actions 3:43
Lecture 284 Why Editing Fails 1:6
Lecture 285 Wrap Up 1:46
Lecture 286 Useful Resources & Links Text

Section 18 : Understanding Validation

Lecture 287 Module Introduction 1:3
Lecture 288 Why Should We Use Validation 2:28
Lecture 289 How to Validate Input 4:4
Lecture 290 Setup & Basic Validation 10:44
Lecture 291 Using Validation Error Messages 2:12
Lecture 292 Built-In & Custom Validators 3:55
Lecture 293 More Validators 4:26
Lecture 294 Checking For Field Equality 3:15
Lecture 295 Adding Async Validation 4:46
Lecture 296 Keeping User Input 4:12
Lecture 297 Adding Conditional CSS Classes 5:30
Lecture 298 Adding Validation to Login 5:37
Lecture 299 Sanitizing Data 3:42
Lecture 300 Validating Product Addition 11:41
Lecture 301 Validating Product Editing 6:57
Lecture 302 Wrap Up 1:23
Lecture 303 Useful Resources & Links Text

Section 19 : Error Handling

Lecture 304 Module Introduction 0:45
Lecture 305 Types of Errors & Error Handling 5:15
Lecture 306 Analyzing the Error Handling in the Current Project 2:5
Lecture 307 Errors - Some Theory 6:43
Lecture 308 Throwing Errors in Code 2:43
Lecture 309 Returning Error Pages 6:55
Lecture 310 Using the Express 5:47
Lecture 311 Updating the App 3:10
Lecture 312 Using the Error Handling Middleware Correctly 4:55
Lecture 313 Status Codes 5:58
Lecture 314 Available Status Codes Text
Lecture 315 Wrap Up 2:21
Lecture 316 Useful Resources & Links Text

Section 20 : File Upload & Download

Lecture 317 Module Introduction 0:55
Lecture 318 Adding a File Picker to the Frontend 3:7
Lecture 319 Handling Multipart Form Data 5:15
Lecture 320 Handling File Uploads with Multer 4:52
Lecture 321 Configuring Multer to Adjust Filename & Filepath 4:29
Lecture 322 Filtering Files by Mimetype 2:28
Lecture 323 Storing File Data in the Database 7:42
Lecture 324 Remove imageUrl from Add Product Text
Lecture 325 Serving Images Statically 4:25
Lecture 326 Downloading Files with Authentication 7:34
Lecture 327 Setting File Type Headers 2:35
Lecture 328 Restricting File Access 3:19
Lecture 329 Streaming Data vs Preloading Data 3:20
Lecture 330 Using PDFKit for 5:32
Lecture 331 Generating 6:51
Lecture 332 Deleting Files 5:57
Lecture 333 Fixing Invoice Links 0:35
Lecture 334 Wrap Up 1:31
Lecture 335 Useful Resources & Links Text

Section 21 : Adding Pagination

Lecture 336 Module Introduction 0:49
Lecture 337 Adding Pagination Links 4:9
Lecture 338 Retrieving a Chunk of Data 3:48
Lecture 339 Skip & Limit with SQL Text
Lecture 340 Preparing Pagination Data on the Server 3:52
Lecture 341 Adding Dynamic Pagination Buttons 8:7
Lecture 342 Re-Using the Pagination Logic & Controls 3:41
Lecture 343 Wrap Up 1:2
Lecture 344 Useful Resources & Links Text

Section 22 : Understanding Async Requests

Lecture 345 Module Introduction 0:49
Lecture 346 What are Async Requests 2:7
Lecture 347 Adding Client Side JS Code 7:24
Lecture 348 The JSON Data Format Text
Lecture 349 Sending & Handling Background Requests 9:26
Lecture 350 Manipulating the DOM 3:2
Lecture 351 Useful Resources & Links Text

Section 23 : Adding Payments

Lecture 352 Module Introduction 0:58
Lecture 353 How Payments Work 2:4
Lecture 354 Adding a Checkout Page 6:1
Lecture 355 Using Stripe in Your App 19:23
Lecture 356 Useful Resources & Links Text

Section 24 : Working with REST APIs - The Basics

Lecture 357 Module Introduction 1:26
Lecture 358 What are REST APIs and why do we use Them 1:40
Lecture 359 Accessing Data with REST APIs 5:42
Lecture 360 Understanding Routing & HTTP Methods 5:26
Lecture 361 REST APIs - The Core Principles 4:9
Lecture 362 Creating our REST API Project & Implementing the Route Setup 6:42
Lecture 363 INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM Pdf
Lecture 364 REST APIs, Clients & CORS Errors 10:33
Lecture 365 Sending POST Requests 6:32
Lecture 366 Wrap Up 2:15
Lecture 367 Useful Resources & Links Text

Section 25 : Working with REST APIs - The Practical Application

Lecture 368 Module Introduction 1:10
Lecture 369 REST APIs & The Rest Of The Course 4:0
Lecture 370 Understanding the Frontend Setup 4:18
Lecture 371 Planning the API 3:3
Lecture 372 Fetching Lists of Posts 6:19
Lecture 373 Adding a Create Post Endpoint 7:36
Lecture 374 Adding Server Side Validation 6:19
Lecture 375 Setting Up a Post Model 5:14
Lecture 376 Storing Posts in the Database 3:32
Lecture 377 Static Images & Error Handling 6:53
Lecture 378 Fetching a Single Post 7:48
Lecture 379 Image Names & Windows
Lecture 380 Uploading Images 8:34
Lecture 381 Updating Posts 14:2
Lecture 382 Deleting Posts 4:17
Lecture 383 Adding Pagination 6:20
Lecture 384 Adding a User Model 4:8
Lecture 385 Adding User Signup Validation 6:29
Lecture 386 Signing Users Up 7:24
Lecture 387 How Does Authentication Work 3:10
Lecture 388 Starting with User Login 3:51
Lecture 389 Logging In & Creating JSON Web Tokens (JWTs) 7:54
Lecture 390 Using & Validating the Token 9:43
Lecture 391 Adding Auth Middleware to All Routes 1:52
Lecture 392 Connecting Posts & Users 6:14
Lecture 393 Adding Authorization Checks 3:51
Lecture 394 Clearing Post-User Relations 2:54
Lecture 395 Wrap Up 2:29
Lecture 396 Useful Resources & Links Text

Section 26 : Understanding Async Await in Node

Lecture 397 Module Introduction 0:59
Lecture 398 What is Async Await All About 3:1
Lecture 399 Transforming Then Catch to Async Await 4:26
Lecture 400 Top-level await 1:18
Lecture 401 The User Name is Missing! Text
Lecture 402 Wrap Up 3:4
Lecture 403 Useful Resources & Links Text

Section 27 : Understanding Websockets & Socket

Lecture 404 Module Introduction 0:55
Lecture 405 What Are Websockets & Why Would You Use Them 4:17
Lecture 406 Websocket Solutions - An Overview 1:36
Lecture 407 Setting Up Socket 3:56
Lecture 408 Establishing a Connection From the Client 2:27
Lecture 409 Identifying Realtime Potential 2:43
Lecture 410 Sharing the IO Instance Across Files 2:47
Lecture 411 Synchronizing POST Additions 7:14
Lecture 412 Fixing a Bug - The Missing Username 1:45
Lecture 413 Updating Posts On All Connected Clients 3:59
Lecture 414 Sorting Correctly 1:0
Lecture 415 Deleting Posts Across Clients 2:32
Lecture 416 Wrap Up 1:49
Lecture 417 Useful Resources & Links Text

Section 28 : Working with GraphQL

Lecture 418 Module Introduction 0:57
Lecture 419 What is GraphQL
Lecture 420 Understanding the Setup & Writing our First Query 11:15
Lecture 421 Defining a Mutation Schema 5:43
Lecture 422 Adding a Mutation Resolver & GraphiQL 9:43
Lecture 423 Adding Input Validation 4:20
Lecture 424 Handling Errors 3:46
Lecture 425 Connecting the Frontend to the GraphQL API 6:49
Lecture 426 Adding a Login Query & a Resolver 6:21
Lecture 427 Adding Login Functionality 4:57
Lecture 428 Adding a Create Post Mutation 7:23
Lecture 429 Extracting User Data From the Auth Token 5:49
Lecture 430 Sending the Create Post Query 4:46
Lecture 431 Fixing a Bug & Adding New Posts Correctly 2:54
Lecture 432 Adding a Get Post Query & Resolver 4:53
Lecture 433 Sending Create Post and Get Post Queries 5:14
Lecture 434 Adding Pagination 4:28
Lecture 435 Uploading Images 10:27
Lecture 436 Fetching the imageUrl Text
Lecture 437 Viewing a Single Post 6:7
Lecture 438 Updating Posts 9:32
Lecture 439 Deleting Posts 9:26
Lecture 440 Adding Posts & Pagination Text
Lecture 441 Managing the User Status 9:17
Lecture 442 Using Variables 16:6
Lecture 443 Fixing a Pagination Bug 2:49
Lecture 444 Wrap Up 3:36
Lecture 445 Useful Resources & Links Text

Section 29 : Deploying our App

Lecture 446 Module Introduction 1:16
Lecture 447 Deploying Different Kinds of Apps 1:39
Lecture 448 Deployment Preparations 4:53
Lecture 449 Using Environment Variables 11:12
Lecture 450 Using Production API Keys 1:19
Lecture 451 Setting Secure Response Headers with Helmet 2:41
Lecture 452 Compressing Assets 2:33
Lecture 453 Setting Up Request Logging 3:35
Lecture 454 More on Logging Text
Lecture 455 Setting Up a SSL Server 9:55
Lecture 456 Using a Hosting Provider 4:25
Lecture 457 Understanding the Project & the Git Setup 4:3
Lecture 458 A Deployment Example with Heroku 10:26
Lecture 459 Storing User-generated Files on Heroku Text
Lecture 460 Deploying APIs 2:52
Lecture 461 Useful Resources & Links Text

Section 30 : Testing Node

Lecture 462 Module Introduction 0:44
Lecture 463 What is Testing 2:42
Lecture 464 Why & How 3:26
Lecture 465 Setup and Writing a First Test 9:40
Lecture 466 Testing the Auth Middleware 12:33
Lecture 467 Organizing Multiple Tests 4:12
Lecture 468 What Not To Test! 8:3
Lecture 469 Using Stubs 8:39
Lecture 470 Testing Controllers 8:3
Lecture 471 Testing Asynchronous Code 5:54
Lecture 472 Setting up a Testing Database 6:34
Lecture 473 Testing Code With An Active Database 6:33
Lecture 474 Cleaning Up 3:29
Lecture 475 Hooks 4:34
Lecture 476 Testing Code That Requires Authentication 12:38
Lecture 477 Wrap Up & Mastering Tests 4:23
Lecture 478 Useful Resources & Links Text

Section 31 : Node

Lecture 479 Module Introduction 1:2
Lecture 480 npm & Node 1:42
Lecture 481 Using npm 7:52
Lecture 482 Versioning in package Text
Lecture 483 What is a Build Tool 5:2
Lecture 484 Using Node 5:50
Lecture 485 Useful Resources & Links Text

Section 32 : Modern JavaScript & NodeJS

Lecture 486 Module Introduction 2:28
Lecture 487 What is this Module About 2:19
Lecture 488 Working with ES Modules & Node 9:33
Lecture 489 More on ES Modules 6:27
Lecture 490 Node Core Modules & Promises 5:19
Lecture 491 Module Resources Text

Section 33 : NodeJS & TypeScript

Lecture 492 Module Introduction 1:23
Lecture 493 TypeScript What & Why 6:3
Lecture 494 TypeScript Setup 4:9
Lecture 495 Assigning Types 3:29
Lecture 496 Type Inference & Type Casting 6:10
Lecture 497 Configuring TypeScript 5:1
Lecture 498 Working with Union Types 4:23
Lecture 499 Using Object & Array Types 6:17
Lecture 500 Working with Type Aliases & Interfaces 3:22
Lecture 501 Understanding Generics 5:10
Lecture 502 A First Summary 0:34
Lecture 503 Node & TypeScript Setup 2:14
Lecture 504 Getting Started with Node and TypeScript 9:31
Lecture 505 Writing TypeScript Express 3:59
Lecture 506 Adding REST Routes with TypeScript 6:42
Lecture 507 Finishing the REST Routes 5:53
Lecture 508 Testing the API 4:52
Lecture 509 Using Type Casting