CINXE.COM

Official Courses | NestJS - Learn to build Node.js apps at any scale

<html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title> Official Courses | NestJS - Learn to build Node.js apps at any scale </title><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0"><link rel="stylesheet" href="bootstrap.4488100f.css"><link rel="stylesheet" href="main.ed094872.css"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700;0,900;1,400;1,500&display=swap" rel="stylesheet"><meta name="description" content="Official NestJS Courses from the NestJS creator and core team members. Learn everything from fundamentals, to more advanced topics such as authentication, microservices, GraphQL and much more."><meta name="robots" content="noodp"><link rel="canonical" href="https://courses.nestjs.com"><meta property="og:url" content="https://courses.nestjs.com"><meta property="og:type" content="website"><meta name="twitter:card" content="summary_large_image"><meta property="og:site_name" content="Official NestJS Courses - Learn to build Node.js apps at any scale"><meta property="og:title" content="Official NestJS Courses - Learn to build Node.js apps at any scale"><meta property="og:description" content="Official NestJS Courses from the NestJS creator and core team members. Learn everything from fundamentals, to more advanced topics such as authentication, microservices, GraphQL and much more."><meta property="og:image" content="https://courses.nestjs.com/img/nest-courses-og.png"><meta property="og:image:width" content="820"><meta property="og:image:height" content="429"><meta name="twitter:description" content="Official NestJS Courses. Learn everything from the basic principles, best-practices, tips & tricks, and advanced patterns straight from the framework's core team members."><meta name="twitter:title" content="Official NestJS Courses - Learn to build Node.js apps at any scale"><meta name="google-site-verification" content="lstrN-qqAaF2ypwi1xcDN4skjk0egXcmRMoLluMxAog"><link rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.50147714.png"><link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.0a29681d.png"><link rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.c832ad73.png"><link rel="icon" type="image/x-icon" href="favicon.264d6486.ico"><link rel="manifest" href="img/manifest.webmanifest"><link rel="mask-icon" href="safari-pinned-tab.3ae2c5c3.svg" color="#ed2945"><meta name="msapplication-config" content="browserconfig.4d6bdd1e.xml"><meta name="msapplication-TileColor" content="#ed2945"><meta name="theme-color" content="#ffffff"><script defer src="https://use.fontawesome.com/releases/v6.4.2/js/all.js"></script><script src="scripts.1e540d71.js"></script><script async src="https://www.googletagmanager.com/gtag/js?id=UA-30617038-6"></script><script type="application/ld+json">[{"inLanguage":"en","@id":"https://courses.nestjs.com/","about":{"name":"Development"},"@type":"Course","image":"https://courses.nestjs.com/img/nest-courses-og.png","description":"Whether you are a Node.js veteran, front-end developer, or even new to development. Learn everything about NestJS from the basic principles, best-practices, tips & tricks, to advanced patterns, getting you ready to build NestJS / Node.js applications at any scale. Prepare for an in-depth guided course & walkthrough of all the fundamentals of a NestJS application from the Creator Kamil Mysliwiec himself, and Mark Pieszak (Core Team Member).","publisher":{"name":"NestJS","sameAs":"www.nestjs.com","@type":"Organization"},"@context":"http://schema.org","audience":{"audienceType":["Beginner or advanced web developers who want to dive into backend (server-side) development with NestJS (Node.js)","Everyone who's interested in building modern, scalable and high-performing web applications","Experienced Node.js developers who want to dive into the full fledged NestJS framework and learn advanced concepts from GraphQL to Nest architecture."],"@type":"Audience"},"provider":{"name":"Kamil Mysliwiec","sameAs":"https://nestjs.com","@type":"Organization"},"name":"Official NestJS Courses from the NestJS creator and core team members. Learn everything from fundamentals, to more advanced topics such as authentication, microservices, GraphQL and much more.","creator":[{"name":"Kamil Mysliwiec","@type":"Person"},{"name":"Mark Pieszak","@type":"Person"}],"isAccessibleForFree":false},{"@context":"http://schema.org","brand":{"name":"NestJS","description":"A progressive Node.js framework for building efficient, reliable and scalable server-side applications.","@type":"Brand","logo":"https://courses.nestjs.com/img/logo.svg"},"name":"Official NestJS Courses from the NestJS creator and core team members. Learn everything from fundamentals, to more advanced topics such as authentication, microservices, GraphQL and much more.","description":"Whether you are a Node.js veteran, front-end developer, or even new to development. Learn everything about NestJS from the basic principles, best-practices, tips & tricks, to advanced patterns, getting you ready to build NestJS / Node.js applications at any scale. Prepare for an in-depth guided course & walkthrough of all the fundamentals of a NestJS application from the Creator Kamil Mysliwiec himself, and Mark Pieszak (Core Team Member).","image":"https://courses.nestjs.com/img/nest-courses-og.png","@type":"Product"}]</script></head><body> <div class="navbar-sticky"> <div class="container"> <div class="d-inline-block logo-wrapper"> <a href="/"> <img src="logo-small-gradient.76616405.svg" alt="NestJS - A progressive Node.js framework"> </a> </div> <ul class="d-inline-block nav-wrapper"> <li> <a href="https://nestjs.com" title="NestJS - A progressive Node.js framework"><span>OUR WEBSITE</span></a> </li> <li> <a href="https://enterprise.nestjs.com" title="Enterprise | NestJS - A progressive Node.js framework"><span>ENTERPRISE</span></a> </li> <li> <span><span class="new">NEW</span><span class="text">RESOURCES</span> <i class="arrow fa-chevron-down fa-solid"></i></span> <div class="sub-nav-outlet"> <div class="sub-nav-wrapper sub-nav-wrapper--light"> <span class="nav-category">Education</span> <ul> <li> <a href="https://docs.nestjs.com" title="Documentation | NestJS - A progressive Node.js framework">Documentation</a> </li> </ul> <span class="nav-category">Platforms</span> <ul> <li> <a href="https://jobs.nestjs.com" title="Jobs | NestJS - A progressive Node.js framework">Jobs</a> </li> </ul> <span class="nav-category">Tools</span> <ul> <li> <a href="https://devtools.nestjs.com" title="Devtools | NestJS - A progressive Node.js framework">Devtools</a> </li> <li> <a href="https://mau.nestjs.com" title="Deploy with Mau | NestJS - A progressive Node.js framework">Mau</a> </li> </ul> </div> </div> </li> <li class="social-icon"> <a href="https://github.com/nestjs/nest" target="_blank" class="icon m-l-30"> <i class="fa-brands fa-github"></i> </a> </li> <li class="social-icon"> <a href="https://twitter.com/nestframework" target="_blank" class="icon"> <i class="fa-brands fa-x-twitter"></i> </a> </li> </ul> </div> </div> <div class="parity-discount-wrapper"> <div class="container"> <p> Is your company located in <img src="https://raw.githubusercontent.com/hjnilsson/country-flags/master/svg/in.svg" width="20" alt="Flag">? Shoot us an email to get a <span>-60%</span> parity discount! <a href="mailto:support@nestjs.com?subject=Courses - Parity discount&cc=hello@trilon.io&body=Hi team,%0D%0A%0D%0AWe would be interested in getting the parity discount.%0D%0A%0D%0ACompany: ...%0D%0AWebsite: ...%0D%0ALocation: ... %0D%0ANumber of copies (for each employee): ...">Get now</a> </p> </div> </div> <div class="preorder-discount-wrapper"> <div class="container"> <p> Save <span>25%</span> and purchase NestJS Fundamentals now - <strong class="timeleft"></strong> <a href="#overview" class="anchor">More</a> </p> </div> </div> <header class="page-header"> <div class="container"> <div class="top-wrapper"> <div class="d-inline-block logo-wrapper"> <a href="/"> <img src="logo-small-gradient.76616405.svg" alt="NestJS - A progressive Node.js framework"> </a> </div> <div class="mobile-nav-icon pull-right"> <span></span> <div class="fill"></div> </div> <nav class="mobile-nav"> <div class="mobile-nav-head"> <div class="mobile-nav-logo"> <a href="/"> <img src="logo-small-gradient.76616405.svg" alt="NestJS - A progressive Node.js framework"> </a> </div> <div class="mobile-nav-close"> <span></span> </div> </div> <ul> <li> <a href="https://nestjs.com" title="NestJS - A progressive Node.js framework"><span>OUR WEBSITE</span></a> </li> <li> <a href="https://enterprise.nestjs.com" title="Enterprise | NestJS - A progressive Node.js framework"><span>ENTERPRISE</span></a> </li> <li> <a href="https://jobs.nestjs.com" title="Jobs | NestJS - A progressive Node.js framework"><span>JOBS</span></a> </li> <li> <a href="https://devtools.nestjs.com" title="Devtools | NestJS - A progressive Node.js framework"><span>DEVTOOLS</span></a> </li> <li> <a href="https://mau.nestjs.com" title="Deploy with Mau | NestJS - A progressive Node.js framework"><span>DEPLOY WITH MAU</span><span class="new">NEW</span></a> </li> <li> <a href="https://github.com/nestjs/nest" target="_blank" title="GitHub | NestJS - A progressive Node.js framework"><span>GITHUB</span></a> </li> </ul> <div class="mobile-nav-footer"> <a href="https://docs.nestjs.com" title="Documentation | NestJS - A progressive Node.js framework" class="btn btn-primary d-inline-block"><span>DOCUMENTATION</span></a> </div> </nav> <nav class="hidden-md pull-right"> <ul class="nav-wrapper"> <li> <a href="https://nestjs.com" title="NestJS - A progressive Node.js framework"><span>OUR WEBSITE</span></a> </li> <li> <a href="https://enterprise.nestjs.com" title="Enterprise | NestJS - A progressive Node.js framework"><span>ENTERPRISE</span></a> </li> <li> <span class="sub-nav-trigger"><span class="new">NEW</span><span class="text">RESOURCES</span> <i class="arrow fa-chevron-down fa-solid"></i></span> <div class="sub-nav-outlet"> <div class="sub-nav-wrapper"> <span class="nav-category">Education</span> <ul> <li> <a href="https://docs.nestjs.com" title="Documentation | NestJS - A progressive Node.js framework">Documentation</a> </li> </ul> <span class="nav-category">Platforms</span> <ul> <li> <a href="https://jobs.nestjs.com" title="Jobs | NestJS - A progressive Node.js framework">Jobs</a> </li> </ul> <span class="nav-category">Tools</span> <ul> <li> <a href="https://devtools.nestjs.com" title="Devtools | NestJS - A progressive Node.js framework">Devtools</a> </li> <li> <a href="https://mau.nestjs.com" title="Deploy with Mau | NestJS - A progressive Node.js framework">Deploy with Mau</a> </li> </ul> </div> </div> </li> <li class="social-icon"> <svg width="0" height="0" class="gradient-svg"><defs><linearGradient id="primary-gradient" x1="0%" x2="100%" y1="0%" y2="0%" gradientUnits="userSpaceOnUse"><stop offset="0%" stop-color="#ea2845"/><stop offset="100%" stop-color="#ea2868"/></linearGradient></defs></svg> <a href="https://github.com/nestjs/nest" target="_blank" class="icon"> <i class="fa-brands fa-github"></i> </a> </li> <li class="social-icon"> <a href="https://twitter.com/nestframework" target="_blank" class="icon"> <i class="fa-brands fa-x-twitter"></i> </a> </li> </ul> </nav> <div class="main-wrapper"> <h1>Official NestJS Courses</h1> <h4> Learn everything you need to master NestJS and tackle modern backend applications at any scale. </h4> <div class="buttons-wrapper"> <a href="#overview" class="anchor btn btn-primary d-inline-block"> <span>See courses</span></a> </div> </div> </div> </div> </header> <div class="course-info-wrapper" id="overview"> <div class="container"> <div class="row"> <div class="col-md-5 col-md-push-7"> <div class="checkout-wrapper"> <iframe src="https://player.vimeo.com/video/433943559?title=0&byline=0&portrait=0&sidedock=0&controls=0" width="380" height="210" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe> <div class="clearfix teachers-wrapper"> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-kamil.606d0144.png"> </div> <div class="teacher-text"> <h3>Kamil Mysliwiec</h3> <p>Creator of NestJS</p> </div> </div> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-mark.3c207ad4.png"> </div> <div class="teacher-text"> <h3>Mark Pieszak</h3> <p>Core Team Member</p> </div> </div> </div> <h5 class="price"> <span class="discount">-25%</span> <span class="current-price">$129.99</span> <span class="original-price">$175.99</span> <span class="vat">+VAT for EU <img src="eu-flag.b6e91d2b.svg" width="19"></span> </h5> <div class="discount-tooltip tooltip"> <p> Is your company located in <img src="https://raw.githubusercontent.com/hjnilsson/country-flags/master/svg/in.svg" width="20" alt="Flag">?<br> Get a <span>-60%</span> parity discount <a href="mailto:support@nestjs.com?subject=Courses - Parity discount&cc=hello@trilon.io&body=Hi team,%0D%0A%0D%0AWe would be interested in getting the parity discount.%0D%0A%0D%0ANOTE: This discount is available to companies, not individuals.%0D%0A%0D%0ACompany: ...%0D%0AWebsite: ...%0D%0ALocation: ... %0D%0ANumber of copies (for each employee): ... [minimum 3 employees]">now</a>! </p> </div> <a href="https://learn.nestjs.com/purchase?product_id=5676925" class="btn btn-green"> Purchase Now <span class="icon"><i class="fa-shopping-cart fas"></i></span> </a> <span class="discount-note"> Need more than 5 licenses? <a href="mailto:support@nestjs.com">Contact us</a> and get a discount! </span> </div> </div> <div class="col-md-7 col-md-pull-5 course-info"> <h2>NestJS Fundamentals Course</h2> <p class="large-text"> Get up to speed with NestJS fast.<br> Master the building blocks and essential concepts behind creating your own enterprise-grade applications. </p> <p> Prepare for an in-depth guided course & walk-through of all the fundamentals of a NestJS application from the Creator Kamil Mysliwiec himself, and Mark Pieszak (Core Team Member). </p> <ul> <li> <span><i class="fa-check fas"></i></span> Step-by-step lesson progression, code everything alongside us! </li> <li> <span><i class="fa-check fas"></i></span> Featuring 80 videos (with subtitles) and over 5 hours of content </li> <li> <span><i class="fa-check fas"></i></span> Build a real-world REST API application with NestJS </li> <li> <span><i class="fa-check fas"></i></span> Learn and use all the most important NestJS building blocks </li> <li> <span><i class="fa-check fas"></i></span> Learn how to interact with both SQL & NoSQL databases </li> <li> <span><i class="fa-check fas"></i></span> Official NestJS Certificate of Completion </li> </ul> <h3 class="m-t-40">What's inside the course...</h3> <div class="curriculum-wrapper"> <div class="curriculum-block opened"> <div class="category-heading"> <i class="fa-chevron-down fas"></i> <h5>Getting Started</h5> <span>4 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Introduction to NestJS</h6> <span>3:54</span> </div> <div class="video-item"> <h6> 2. Installing the NestJS CLI (command-line interface) </h6> <span>1:27</span> </div> <div class="video-item"> <h6 class="preview-video-title"> 3. Generating our first NestJS Application </h6> <span>1:32</span> <button class="btn-watch" data-video-id="433942660"> <i class="fa-play fas"></i> Watch </button> </div> <div class="video-item"> <h6>4. What’s inside a NestJS Application</h6> <span>4:04</span> </div> <div class="video-item"> <h6>5. What we'll be building in this course</h6> <span class="lesson-icon"><i class="fa-file-alt far"></i></span> </div> <div class="video-item"> <h6>6. Beginning your NestJS Journey</h6> <span class="lesson-icon"><i class="fa-file-alt far"></i></span> </div> </div> </div> <div class="curriculum-block"> <div class="category-heading"> <i class="fa-chevron-down fas"></i> <h5>Creating a REST API application</h5> <span>15 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Prerequisite: Install Insomnia</h6> <span>0:29</span> </div> <div class="video-item"> <h6>2. Running NestJS in Development Mode</h6> <span>1:06</span> </div> <div class="video-item"> <h6>3. Creating a Basic Controller</h6> <span>4:52</span> </div> <div class="video-item"> <h6 class="preview-video-title">4. Use Route Parameters</h6> <span>2:05</span> <button class="btn-watch" data-video-id="433943559"> <i class="fa-play fas"></i> Watch </button> </div> <div class="video-item"> <h6>5. Handling Request Body / Payload</h6> <span>1:48</span> </div> <div class="video-item"> <h6>6. Response Status Codes</h6> <span>4:13</span> </div> <div class="video-item"> <h6>7. Handling Update and Delete Requests</h6> <span>3:04</span> </div> <div class="video-item"> <h6>8. Implement Pagination with Query Parameters</h6> <span>2:19</span> </div> <div class="video-item"> <h6>9. Creating a Basic Service</h6> <span>7:53</span> </div> <div class="video-item"> <h6>10. Send User-Friendly Error Messages</h6> <span>3:49</span> </div> <div class="video-item"> <h6>11. Encompass Business-Domain in Modules</h6> <span>4:37</span> </div> <div class="video-item"> <h6>12. Introduction to Data Transfer Objects</h6> <span>6:29</span> </div> <div class="video-item"> <h6 class="preview-video-title"> 13. Validate Input Data with Data Transfer Objects </h6> <span>7:24</span> <button class="btn-watch" data-video-id="447088958"> <i class="fa-play fas"></i> Watch </button> </div> <div class="video-item"> <h6>14. Handling Malicious Request Data</h6> <span>2:09</span> </div> <div class="video-item"> <h6>15. Auto-transform Payloads to DTO instances</h6> <span>3:01</span> </div> <div class="video-item"> <h6>16. Chapter 2 - Review Quiz</h6> <span class="lesson-icon"><i class="fa-tasks fas"></i></span> </div> </div> </div> <div class="curriculum-block"> <div class="category-heading"> <i class="fa-chevron-down fas"></i> <h5>Add PostgreSQL with TypeORM</h5> <span>13 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Before we Get Started</h6> <span>0:46</span> </div> <div class="video-item"> <h6>2. Prerequisite: Install Docker</h6> <span>2:09</span> </div> <div class="video-item"> <h6>3. Running PostgreSQL</h6> <span>3:06</span> </div> <div class="video-item"> <h6>4. Introducing the TypeORM Module</h6> <span>4:04</span> </div> <div class="video-item"> <h6>5. Creating a TypeORM Entity</h6> <span>4:00</span> </div> <div class="video-item"> <h6>6. Use Repository to Access Database</h6> <span>7:02</span> </div> <div class="video-item"> <h6>7. Create a Relation between two Entities</h6> <span>6:14</span> </div> <div class="video-item"> <h6>8. Retrieve Entities with their Relations</h6> <span>3:14</span> </div> <div class="video-item"> <h6>9. Using Cascading Inserts and Updates</h6> <span>4:49</span> </div> <div class="video-item"> <h6>10. Adding Pagination</h6> <span>4:55</span> </div> <div class="video-item"> <h6>11. Use Transactions</h6> <span>5:33</span> </div> <div class="video-item"> <h6>12. Adding Indexes to Entities</h6> <span>0:54</span> </div> <div class="video-item"> <h6>13. Setting up Migrations</h6> <span>6:57</span> </div> <div class="video-item"> <h6>14. Chapter 3 - Review Quiz</h6> <span class="lesson-icon"><i class="fa-tasks fas"></i></span> </div> </div> </div> <div class="curriculum-block"> <div class="category-heading"> <i class="fa-chevron-down fas"></i> <h5>Dependency Injection</h5> <span>11 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6 class="preview-video-title"> 1. Understand Dependency Injection </h6> <span>3:59</span> <button class="btn-watch" data-video-id="430687886"> <i class="fa-play fas"></i> Watch </button> </div> <div class="video-item"> <h6>2. Control NestJS Module Encapsulation</h6> <span>3:06</span> </div> <div class="video-item"> <h6>3. Diving Into Custom Providers</h6> <span>1:17</span> </div> <div class="video-item"> <h6>4. Value based Providers</h6> <span>0:56</span> </div> <div class="video-item"> <h6>5. Non-class-based Provider Tokens</h6> <span>3:10</span> </div> <div class="video-item"> <h6>6. Class Providers</h6> <span>1:03</span> </div> <div class="video-item"> <h6>7. Factory Providers</h6> <span>2:20</span> </div> <div class="video-item"> <h6>8. Leverage Async Providers</h6> <span>2:08</span> </div> <div class="video-item"> <h6>9. Create a Dynamic Module</h6> <span>3:55</span> </div> <div class="video-item"> <h6>10. Control Providers Scope</h6> <span>3:59</span> </div> <div class="video-item"> <h6>11. Diving Deeper Into Request-Scoped Providers</h6> <span>3:23</span> </div> <div class="video-item"> <h6>12. Chapter 4 - Review Quiz</h6> <span class="lesson-icon"><i class="fa-tasks fas"></i></span> </div> </div> </div> <div class="curriculum-block"> <div class="category-heading"> <i class="fa-chevron-down fas"></i> <h5>Application Configuration</h5> <span>7 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Introducing the Config Module</h6> <span>4:41</span> </div> <div class="video-item"> <h6>2. Custom Environment File Paths</h6> <span>1:17</span> </div> <div class="video-item"> <h6>3. Schema Validation</h6> <span>2:59</span> </div> <div class="video-item"> <h6>4. Using the Config Service</h6> <span>2:19</span> </div> <div class="video-item"> <h6>5. Custom Configuration Files</h6> <span>4:32</span> </div> <div class="video-item"> <h6> 6. Configuration Namespaces and Partial Registration </h6> <span>4:58</span> </div> <div class="video-item"> <h6>7. Asynchronously Configure Dynamic Modules</h6> <span>3:08</span> </div> <div class="video-item"> <h6>8. Chapter 5 - Review Quiz</h6> <span class="lesson-icon"><i class="fa-tasks fas"></i></span> </div> </div> </div> <div class="curriculum-block"> <div class="category-heading"> <i class="fa-chevron-down fas"></i> <h5>Other Building Blocks by Example</h5> <span>10 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Introducing More Building Blocks</h6> <span>2:20</span> </div> <div class="video-item"> <h6>2. Understanding Binding Techniques</h6> <span>6:19</span> </div> <div class="video-item"> <h6>3. Catch Exceptions with Filters</h6> <span>7:24</span> </div> <div class="video-item"> <h6>4. Protect Routes with Guards</h6> <span>7:39</span> </div> <div class="video-item"> <h6> 5. Using Metadata to Build Generic Guards or Interceptors </h6> <span>10:05</span> </div> <div class="video-item"> <h6 class="preview-video-title"> 6. Add Pointcuts with Interceptors </h6> <span>7:01</span> <button class="btn-watch" data-video-id="447091051"> <i class="fa-play fas"></i> Watch </button> </div> <div class="video-item"> <h6>7. Handling Timeouts with Interceptors</h6> <span>4:02</span> </div> <div class="video-item"> <h6>8. Creating Custom Pipes</h6> <span>5:48</span> </div> <div class="video-item"> <h6>9. Bonus: Add Request Logging with Middleware</h6> <span>6:15</span> </div> <div class="video-item"> <h6>10. Bonus: Create Custom Param Decorators</h6> <span>3:49</span> </div> <div class="video-item"> <h6>11. Chapter 6 - Review Quiz</h6> <span class="lesson-icon"><i class="fa-tasks fas"></i></span> </div> </div> </div> <div class="curriculum-block"> <div class="category-heading"> <i class="fa-chevron-down fas"></i> <h5>Generating OpenAPI Specification</h5> <span>5 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Introducing the Swagger Module</h6> <span>3:44</span> </div> <div class="video-item"> <h6>2. Enabling CLI Plugin</h6> <span>3:42</span> </div> <div class="video-item"> <h6>3. Decorating Model Properties</h6> <span>1:20</span> </div> <div class="video-item"> <h6>4. Adding Example Responses</h6> <span>2:03</span> </div> <div class="video-item"> <h6>5. Using Tags to Group Resources</h6> <span>1:04</span> </div> <div class="video-item"> <h6>6. Chapter 7 - Review Quiz</h6> <span class="lesson-icon"><i class="fa-tasks fas"></i></span> </div> </div> </div> <div class="curriculum-block"> <div class="category-heading"> <i class="fa-chevron-down fas"></i> <h5>Testing</h5> <span>6 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Introduction to Jest</h6> <span>1:50</span> </div> <div class="video-item"> <h6>2. Getting Started with Test Suites</h6> <span>8:44</span> </div> <div class="video-item"> <h6>3. Adding Unit Tests</h6> <span>7:43</span> </div> <div class="video-item"> <h6>4. Diving Into e2e Tests</h6> <span>6:08</span> </div> <div class="video-item"> <h6>5. Creating our First e2e Test</h6> <span>6:58</span> </div> <div class="video-item"> <h6>6. Implementing e2e Test Logic</h6> <span>4:11</span> </div> <div class="video-item"> <h6>7. Chapter 8 - Review Quiz</h6> <span class="lesson-icon"><i class="fa-tasks fas"></i></span> </div> </div> </div> <div class="curriculum-block"> <div class="category-heading"> <i class="fa-chevron-down fas"></i> <h5>Bonus: Add MongoDB with Mongoose</h5> <span>9 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Before we Get Started</h6> <span>0:43</span> </div> <div class="video-item"> <h6>2. Prerequisite: Install Docker</h6> <span>2:31</span> </div> <div class="video-item"> <h6>3. Running MongoDB</h6> <span>2:59</span> </div> <div class="video-item"> <h6>4. Introducing the Mongoose Module</h6> <span>2:45</span> </div> <div class="video-item"> <h6>5. Creating a Mongoose Model</h6> <span>4:51</span> </div> <div class="video-item"> <h6>6. Using a Mongoose Model to Access MongoDB</h6> <span>8:41</span> </div> <div class="video-item"> <h6>7. Adding Pagination</h6> <span>4:56</span> </div> <div class="video-item"> <h6>8. Use Transactions</h6> <span>6:03</span> </div> <div class="video-item"> <h6>9. Adding Indexes to Schemas</h6> <span>1:17</span> </div> <div class="video-item"> <h6>10. Chapter 9 - Review Quiz</h6> <span class="lesson-icon"><i class="fa-tasks fas"></i></span> </div> </div> </div> </div> <h3 class="m-t-40">Extensions...</h3> <div class="curriculum-wrapper"> <div class="curriculum-block"> <div class="extension-heading open-extension-trigger" data-extension-key="authentication"> <h5>Authentication and Authorization</h5> <span class="price">+$79</span> </div> </div> <div class="curriculum-block open-extension-trigger" data-extension-key="architecture"> <div class="extension-heading"> <h5>Architecture and Advanced patterns</h5> <span class="price">+$95</span> </div> </div> <div class="curriculum-block open-extension-trigger" data-extension-key="advanced-concepts"> <div class="extension-heading"> <h5>Advanced concepts</h5> <span class="price">+$69</span> </div> </div> <div class="curriculum-block open-extension-trigger" data-extension-key="advanced-bundle"> <div class="extension-heading"> <span class="extension-label extension-label--coming-soon">Bundle -22%</span> <h5>Advanced: Architecture + Concepts</h5> <span class="price">+$129</span> </div> </div> <div class="curriculum-block"> <div class="extension-heading open-extension-trigger" data-extension-key="microservices"> <h5>Microservices</h5> <span class="price">+$59</span> </div> </div> <div class="curriculum-block open-extension-trigger" data-extension-key="code-first"> <div class="extension-heading"> <h5>GraphQL - Code first</h5> <span class="price">+$39</span> </div> </div> <div class="curriculum-block open-extension-trigger" data-extension-key="schema-first"> <div class="extension-heading"> <h5>GraphQL - Schema first</h5> <span class="price">+$39</span> </div> </div> <div class="curriculum-block open-extension-trigger" data-extension-key="graphql-bundle"> <div class="extension-heading"> <span class="extension-label extension-label--coming-soon">Bundle -25%</span> <h5>GraphQL: Code first + Schema first</h5> <span class="price">+$59</span> </div> </div> <div class="curriculum-block" data-extension-link="https://learn.nestjs.com/purchase?product_id=5772223"> <div class="extension-heading"> <span class="extension-label extension-label--coming-soon">Bundle -30%</span> <h5> All extensions <i class="fa fa-external-link" aria-hidden="true"></i> </h5> <span class="price">+$269</span> </div> </div> <div class="curriculum-block curriculum-block--all-in-one" data-extension-link="https://learn.nestjs.com/purchase?product_id=5772222"> <div class="extension-heading extension-heading--all-in-one"> <span class="extension-label">Bundle -30%</span> <h5> All-in-One bundle <i class="fa fa-external-link" aria-hidden="true"></i> </h5> <span class="original-price">$495</span> <span class="price">+$349</span> </div> </div> </div> </div> </div> </div> </div> <div class="discover-wrapper"> <div class="container"> <div class="heading"> <h4>Who is using Nest?</h4> <p> Nest is proudly powering a large ecosystem of enterprises and products out there. Wanna see your logo here? <a href="https://github.com/nestjs/nest/issues/1006" target="_blank">Find out more</a>. </p> </div> <div class="companies-tiles"> <a href="https://www.sanofi.com/" target="_blank" rel="nofollow noopener"> <img src="sanofi.b18c1526.png"> </a> <a href="https://adidas.com/" target="_blank" rel="nofollow noopener"> <img src="adidas.718f26f2.svg" width="90"> </a> <a href="https://www.autodesk.com/" target="_blank" rel="nofollow noopener"> <img src="autodesk.a7f2b58e.png" height="70"> </a> <a href="https://www.mercedes-benz.com" target="_blank" rel="nofollow noopener"> <img src="mercedes.ee8047a9.png"> </a> <a href="https://about.gitlab.com/" target="_blank" rel="nofollow noopener"> <img src="gitlab.4f9d2995.png"> </a> <a href="https://www.redhat.com" target="_blank" rel="nofollow noopener"> <img src="red-hat.c5e6e64a.svg" width="135"> </a> <a href="https://www.bmw.com" target="_blank" rel="nofollow noopener"> <img src="bmw.0ce4c05c.svg" height="70"> </a> <a href="https://roche.com/" target="_blank" rel="nofollow noopener"> <img src="roche-logo.979d9061.png" height="55"> </a> <a href="https://www.ibm.com" target="_blank" rel="nofollow noopener"> <img src="ibm.b8c76e06.svg" height="40"> </a> <a href="https://www.decathlon.com/" target="_blank" rel="nofollow noopener"> <img src="decathlon.1f3c4744.png"> </a> <a href="https://www.societegenerale.fr/" target="_blank" rel="nofollow noopener"> <img src="societe-generale-logo.ec64d013.png"> </a> <a href="https://www.jetbrains.com/" target="_blank" rel="nofollow noopener"> <img src="jetbrains.536f2da5.svg" width="135"> </a> <a href="https://totalenergies.com/" target="_blank" rel="nofollow noopener"> <img src="totalenergies.5a993082.svg" height="65"> </a> <a href="https://capgemini.com/" target="_blank" rel="nofollow noopener"> <img src="capgemini.a1d43b77.svg"> </a> <a href="https://www.rewe-digital.com/" target="_blank" rel="nofollow noopener"> <img src="rewe.1250e1e4.svg"> </a> </div> </div> </div> <div class="enterprise-wrapper" id="enterprise"> <div class="container"> <div class="enterprise-column"> <h2>Check out other NestJS course extensions to learn even more!</h2> <p> Learn more about NestJS and the Node.js ecosystem in these hands-on courses designed to deep-dive into many important areas such as Authentication, Microservices, or GraphQL. </p> <a href="#extensions" class="anchor btn btn-secondary d-inline-block">Explore course extensions</a> </div> </div> </div> <section class="email-wrapper" id="featured"> <div class="container"> <hgroup> <h2>Preview a featured lesson</h2> <p>Add Pointcuts with Interceptors • NestJS Fundamentals</p> </hgroup> <iframe src="https://player.vimeo.com/video/447091051?title=0&byline=0&portrait=0&sidedock=0" width="1170" height="675" frameborder="0" class="featured-lesson" allow="autoplay; fullscreen" allowfullscreen></iframe> </div> </section> <div class="highlights-wrapper" id="extensions"> <div class="container"> <div class="heading"> <h4>Course Extensions</h4> <p> Official NestJS Course Extensions will help you take your applications to the next level, while learning much more about the Node.js ecosystem, and other vastly important technologies. </p> </div> <div class="row"> <div class="col-lg-3 col-sm-6 highlight-block"> <div class="extension-card extension-card--bundle" data-extension-link="https://learn.nestjs.com/purchase?product_id=5772222"> <div class="card-image card-image--bundle"> <span class="extension-label extension-label--bundle">Bundle -30%</span> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-1"><polygon points="250,120 100,400 400,400" fill="#c6219b"/></svg> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-2"><polygon points="250,120 100,400 400,400" fill="#c6219b"/></svg> <img src="books.08f0b6d9.svg" width="50"> </div> <div class="card-header"> <h4> All-in-One bundle <i class="fa fa-external-link" aria-hidden="true"></i> </h4> <h5>All courses</h5> </div> <div class="card-body"> <p> <i class="fa-bookmark far"></i> 202 lessons <i class="fa-clock far"></i> +17 hours </p> <div class="extension-price"> <span>$349</span> </div> </div> </div> </div> <div class="col-lg-3 col-sm-6 highlight-block"> <div class="extension-card extension-card--bundle" data-extension-link="https://learn.nestjs.com/purchase?product_id=5772223"> <div class="card-image card-image--bundle"> <span class="extension-label extension-label--bundle">Bundle -30%</span> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-1"><polygon points="250,120 100,400 400,400" fill="#c6219b"/></svg> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-2"><polygon points="250,120 100,400 400,400" fill="#c6219b"/></svg> <img src="corp.3d82653b.svg" width="50"> </div> <div class="card-header"> <h4> Extensions - bundle <i class="fa fa-external-link" aria-hidden="true"></i> </h4> <h5>All extensions</h5> </div> <div class="card-body"> <p> <i class="fa-bookmark far"></i> 122 lessons <i class="fa-clock far"></i> +12 hours </p> <div class="extension-price"> <span>$269</span> </div> </div> </div> </div> <div class="col-lg-3 col-sm-6 highlight-block"> <div class="extension-card open-extension-trigger" data-extension-key="architecture"> <div class="card-image"> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-1"><polygon points="250,120 100,400 400,400" fill="url(#primary-gradient)"/></svg> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-2"><polygon points="250,120 100,400 400,400" fill="url(#primary-gradient)"/></svg> <img src="architecture.dcd277be.svg" width="50"> </div> <div class="card-header"> <h4>Architecture and Advanced patterns</h4> </div> <div class="card-body"> <p> <i class="fa-bookmark far"></i> 21 lessons <i class="fa-clock far"></i> 2,5 hours </p> <div class="extension-price"> <span>$95</span> </div> </div> </div> </div> <div class="col-lg-3 col-sm-6 highlight-block"> <div class="extension-card extension-card--bundle open-extension-trigger" data-extension-key="graphql-bundle"> <div class="card-image card-image--bundle"> <span class="extension-label extension-label--bundle">Bundle -25%</span> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-1"><polygon points="250,120 100,400 400,400" fill="#c6219b"/></svg> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-2"><polygon points="250,120 100,400 400,400" fill="#c6219b"/></svg> <img src="graphql-2.0920706a.svg" width="50"> <img src="graphql.44860e93.svg" width="50" class="second-ext-icon"> </div> <div class="card-header"> <h4>GraphQL - Bundle</h4> <h5>Code first + Schema first</h5> </div> <div class="card-body"> <p> <i class="fa-bookmark far"></i> 44 lessons <i class="fa-clock far"></i> 4 hours </p> <div class="extension-price"> <span>$59</span> </div> </div> </div> </div> <div class="col-lg-3 col-sm-6 highlight-block open-extension-trigger" data-extension-key="authentication"> <div class="extension-card"> <div class="card-image"> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-1"><polygon points="250,120 100,400 400,400" fill="url(#primary-gradient)"/></svg> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-2"><polygon points="250,120 100,400 400,400" fill="url(#primary-gradient)"/></svg> <img src="padlock.00488851.svg" width="50"> </div> <div class="card-header"> <h4>Authentication and Authorization</h4> </div> <div class="card-body"> <p> <i class="fa-bookmark far"></i> 19 lessons <i class="fa-clock far"></i> 2 hours </p> <div class="extension-price"> <span>$79</span> </div> </div> </div> </div> <div class="col-lg-3 col-sm-6 highlight-block open-extension-trigger" data-extension-key="advanced-concepts"> <div class="extension-card"> <div class="card-image"> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-1"><polygon points="250,120 100,400 400,400" fill="url(#primary-gradient)"/></svg> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-2"><polygon points="250,120 100,400 400,400" fill="url(#primary-gradient)"/></svg> <img src="diamond.ecfa463f.svg" width="50"> </div> <div class="card-header"> <h4>Advanced concepts</h4> </div> <div class="card-body"> <p> <i class="fa-bookmark far"></i> 18 lessons <i class="fa-clock far"></i> 2 hours </p> <div class="extension-price"> <span>$69</span> </div> </div> </div> </div> <div class="col-lg-3 col-sm-6 highlight-block"> <div class="extension-card open-extension-trigger" data-extension-key="code-first"> <div class="card-image"> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-1"><polygon points="250,120 100,400 400,400" fill="url(#primary-gradient)"/></svg> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-2"><polygon points="250,120 100,400 400,400" fill="url(#primary-gradient)"/></svg> <img src="graphql.44860e93.svg" width="50"> </div> <div class="card-header"> <h4>GraphQL - Code first</h4> </div> <div class="card-body"> <p> <i class="fa-bookmark far"></i> 23 lessons <i class="fa-clock far"></i> 2 hours </p> <div class="extension-price"> <span>$39</span> </div> </div> </div> </div> <div class="col-lg-3 col-sm-6 highlight-block"> <div class="extension-card open-extension-trigger" data-extension-key="microservices"> <div class="card-image"> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-1"><polygon points="250,120 100,400 400,400" fill="url(#primary-gradient)"/></svg> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-2"><polygon points="250,120 100,400 400,400" fill="url(#primary-gradient)"/></svg> <img src="network.87de5857.svg" width="50"> </div> <div class="card-header"> <h4>Microservices</h4> </div> <div class="card-body"> <p> <i class="fa-bookmark far"></i> 20 lessons <i class="fa-clock far"></i> 2 hours </p> <div class="extension-price"> <span>$59</span> </div> </div> </div> </div> <div class="col-lg-3 col-sm-6 highlight-block"> <div class="extension-card extension-card--bundle open-extension-trigger" data-extension-key="advanced-bundle"> <div class="card-image card-image--bundle"> <span class="extension-label extension-label--bundle">Bundle -22%</span> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-1"><polygon points="250,120 100,400 400,400" fill="#c6219b"/></svg> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-2"><polygon points="250,120 100,400 400,400" fill="#c6219b"/></svg> <img src="architecture.dcd277be.svg" width="50"> <img src="diamond.ecfa463f.svg" class="second-ext-icon" width="50"> </div> <div class="card-header"> <h4>Advanced - Bundle</h4> <h5>Architecture + Concepts</h5> </div> <div class="card-body"> <p> <i class="fa-bookmark far"></i> 39 lessons <i class="fa-clock far"></i> 4,5 hours </p> <div class="extension-price"> <span>$129</span> </div> </div> </div> </div> <div class="col-lg-3 col-sm-6 highlight-block"> <div class="extension-card open-extension-trigger" data-extension-key="schema-first"> <div class="card-image"> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-1"><polygon points="250,120 100,400 400,400" fill="url(#primary-gradient)"/></svg> <svg height="15" width="15" viewBox="0 0 500 500" class="triangle-2"><polygon points="250,120 100,400 400,400" fill="url(#primary-gradient)"/></svg> <img src="graphql.44860e93.svg" width="50"> </div> <div class="card-header"> <h4>GraphQL - Schema first</h4> </div> <div class="card-body"> <p> <i class="fa-bookmark far"></i> 21 lessons <i class="fa-clock far"></i> 2 hours </p> <div class="extension-price"> <span>$39</span> </div> </div> </div> </div> </div> </div> </div> <section class="email-wrapper" id="contact"> <div class="container"> <hgroup> <h2>Does your team need additional support?</h2> <p> Nest core team members can work directly with your team on a daily basis to help take your project to the next-level. <br>Let us partner with you and your team to develop the most ambitious projects. </p> </hgroup> <div class="button-wrapper"> <a href="https://enterprise.nestjs.com" class="btn btn-primary"><span>Read more</span></a> </div> </div> </section> <div class="faq-wrapper"> <div class="container"> <div class="heading"> <h4>Frequently Asked Questions</h4> <p> Got a question? Find answers to the most common questions below. </p> </div> <div class="faq-questions-container"> <div class="faq-question-wrapper"> <div class="faq-question"> <h5>Do courses have subtitles (Closed Captions)?</h5> <p> Yes! All courses have subtitles (Closed Captions) and full written transcripts for each lesson in English. </p> </div> </div> <div class="faq-question-wrapper"> <div class="faq-question"> <h5>How long do I have access to the course?</h5> <p> All course purchases have unlimited lifetime access & free updates. No subscriptions needed, you can access the course anytime, forever. </p> </div> </div> <div class="faq-question-wrapper"> <div class="faq-question"> <h5>What are my payment options?</h5> <p> Our online checkout accepts all major Credit Cards and Google Pay. Checkout is a fully secure 128-bit SSL encrypted payment system through Stripe. </p> </div> </div> <div class="faq-question-wrapper"> <div class="faq-question"> <h5>Do you offer large team discounts?</h5> <p> Yes of course! Please contact us at <a href="mailto:support@nestjs.com">support@nestjs.com</a> about the size of your team, and we can help you purchase all course licenses with discount codes. </p> </div> </div> <div class="faq-question-wrapper faq-question-wrapper--wide"> <div class="faq-question"> <h5>Can I share my course with someone else?</h5> <p> Each purchase is limited to <strong>ONE</strong> license & user viewing the course. Our licensing agreement prohibits any form of sharing. Account activity is tracked and abuse of copyright taken very seriously. If you are purchasing for larger teams (10+) shoot us an email at <a href="mailto:support@nestjs.com">support@nestjs.com</a> to retrieve a large-team discount code. </p> </div> </div> <div class="faq-question-wrapper faq-question-wrapper--wide"> <div class="faq-question"> <h5>Do I receive a certificate of completion?</h5> <p> Yes. When completing each course you will receive an official Certificate indicating that you have completed each Nest certified course. You can download an official certificate of completion that can be used to be reimbursed by your employer or land that dream job you are applying for. </p> </div> </div> </div> </div> </div> <div class="newsletter-wrapper"> <div class="container signup"> <hgroup> <h3>Join our Newsletter</h3> <p> Subscribe to stay up to date with the latest Nest updates, features, and upcoming course updates! </p> </hgroup> <div class="newsletter-form"> <form class="form-wrapper"> <input id="newsletter-email" class="form-control" name="email" type="email" placeholder="Email address.." required> <button type="submit" class="signup-button"> <i class="fa-paper-plane far"></i> <i class="fa-check-circle fas icon-success"></i> </button> </form> </div> </div> </div> <div class="video-modal-container"> <div class="video-modal"></div> </div> <div class="extension-modal-container" data-extension-key="architecture"> <div class="course-info-wrapper extension-modal"> <div class="extension-modal-content"> <div class="extension-info"> <h2> Architecture and Advanced Patterns </h2> <p class="large-text"> In one of our most advanced courses yet. In this course, we will be covering many powerful Architectural Concepts & Patterns used in some of today's most complex Node.js systems in the real-world! </p> <p> From N-Tier, Hexagonal, Domain Driven-Design, and so much, you'll be ready to build world-class NestJS / Node.js systems in no-time! Prepare for an in-depth guided course & walk-through of real-world <strong>Advanced Architectural Concepts & Patterns</strong> from the Creator Kamil Mysliwiec himself, and Mark Pieszak (Core Team Member). </p> <ul> <li> <span><i class="fa-check fas"></i></span> Step-by-step lesson progression, code everything alongside us! </li> <li> <span><i class="fa-check fas"></i></span> Featuring 21 videos (with subtitles) and +2 hours of content </li> <li> <span><i class="fa-check fas"></i></span> Learn about Hexagonal / Onion Architectures and utilize them </li> <li> <span><i class="fa-check fas"></i></span> Domain Driven Design (DDD) and how to apply it with NestJS </li> <li> <span><i class="fa-check fas"></i></span> Learn about Event-driven architecture </li> <li> <span><i class="fa-check fas"></i></span> Setup Event Sourcing with NestJS </li> <li> <span><i class="fa-check fas"></i></span> Learn how to use CQRS with NestJS effectively </li> <li> <span><i class="fa-check fas"></i></span> Official NestJS Certificate of Completion </li> </ul> <h3 class="m-t-40">What's inside the extension...</h3> <div class="curriculum-wrapper"> <div class="curriculum-block opened"> <div class="category-heading"> <h5>Architecture and Advanced Patterns extension</h5> <span>21 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Before we get started</h6> <span>0:59</span> </div> <div class="video-item"> <h6>2. Prerequisite: Generate Nest application</h6> <span>1:00</span> </div> <div class="video-item"> <h6>3. What's a Layered (N-tier) Architecture?</h6> <span>3:56</span> </div> <div class="video-item"> <h6> 4. Three-tier Architecture vs Hexagonal Architecture </h6> <span>3:59</span> </div> <div class="video-item"> <h6>5. Hexagonal Architecture in Practice. Part 1</h6> <span>7:07</span> </div> <div class="video-item"> <h6>6. Hexagonal Architecture in Practice. Part 2</h6> <span>12:20</span> </div> <div class="video-item"> <h6>7. Onion Architecture?</h6> <span>2:17</span> </div> <div class="video-item"> <h6>8. Introduction to Domain-Driven Design</h6> <span>4:59</span> </div> <div class="video-item"> <h6>9. Command Query Responsibility Segregation (CQRS)</h6> <span>3:05</span> </div> <div class="video-item"> <h6>10. Experimenting with CQRS. Part 1</h6> <span>5:34</span> </div> <div class="video-item"> <h6>11. What's an Event-Driven Architecture?</h6> <span>2:52</span> </div> <div class="video-item"> <h6>12. Experimenting with CQRS. Part 2</h6> <span>5:15</span> </div> <div class="video-item"> <h6>13. Eventual Consistency</h6> <span>2:35</span> </div> <div class="video-item"> <h6>14. Experimenting with CQRS. Part 3</h6> <span>21:24</span> </div> <div class="video-item"> <h6>15. Introduction to Event Sourcing</h6> <span>3:14</span> </div> <div class="video-item"> <h6>16. Adding an Event Store. Part 1</h6> <span>18:58</span> </div> <div class="video-item"> <h6>17. Adding an Event Store. Part 2</h6> <span>7:20</span> </div> <div class="video-item"> <h6>18. Extra: Autowire Event classes</h6> <span>2:26</span> </div> <div class="video-item"> <h6>19. Rehydrating Aggregates</h6> <span>12:28</span> </div> <div class="video-item"> <h6>20. Snapshots: What & Why?</h6> <span>2:57</span> </div> <div class="video-item"> <h6>21. Understanding Sagas</h6> <span>10:55</span> </div> </div> </div> </div> </div> <div class="checkout-wrapper"> <span class="close-icon">x</span> <img src="no-preview-video.876718d4.jpeg" class="video-preview-placeholder"> <div class="clearfix teachers-wrapper"> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-kamil.606d0144.png"> </div> <div class="teacher-text"> <h3>Kamil Mysliwiec</h3> <p>Creator of NestJS</p> </div> </div> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-mark.3c207ad4.png"> </div> <div class="teacher-text"> <h3>Mark Pieszak</h3> <p>Core Team Member</p> </div> </div> </div> <h5 class="price"> <span class="discount">-25%</span> <span class="current-price">$95.00</span> <span class="original-price">$125.00</span> <span class="vat">+VAT for EU <img src="eu-flag.b6e91d2b.svg" width="19"></span> </h5> <div class="discount-tooltip tooltip"> <p> Is your company located in <img src="https://raw.githubusercontent.com/hjnilsson/country-flags/master/svg/in.svg" width="20" alt="Flag">?<br> Get a <span>-60%</span> parity discount <a href="mailto:support@nestjs.com?subject=Courses - Parity discount&cc=hello@trilon.io&body=Hi team,%0D%0A%0D%0AWe would be interested in getting the parity discount.%0D%0A%0D%0ANOTE: This discount is available to companies, not individuals.%0D%0A%0D%0ACompany: ...%0D%0AWebsite: ...%0D%0ALocation: ... %0D%0ANumber of copies (for each employee): ... [minimum 3 employees]">now</a>! </p> </div> <a href="https://learn.nestjs.com/purchase?product_id=5223094" class="btn btn-green"> Purchase Now <span class="icon"><i class="fa-shopping-cart fas"></i></span> </a> <span class="discount-note"> Need more than 5 licenses? <a href="mailto:support@nestjs.com">Contact us</a> and get a discount! </span> </div> </div> </div> </div> <div class="extension-modal-container" data-extension-key="microservices"> <div class="course-info-wrapper extension-modal"> <div class="extension-modal-content"> <div class="extension-info"> <h2> Microservices </h2> <p class="large-text"> Dive into the exciting world of Microservice Architectures and learn how to easily tackle them with the help of NestJS. </p> <p> Prepare for an in-depth guided course & walk-through about the complex world of <strong>Microservices</strong>, setting up our own Microservice system with NestJS, all from the ground-up! Learn directly from the NestJS Creator - Kamil Mysliwiec himself, and Mark Pieszak (Core Team Member). </p> <ul> <li> <span><i class="fa-check fas"></i></span> Step-by-step lesson progression, code everything alongside us! </li> <li> <span><i class="fa-check fas"></i></span> Featuring 20 videos (with subtitles) and +2 hours of content </li> <li> <span><i class="fa-check fas"></i></span> Monolithic Architecture vs Microservices </li> <li> <span><i class="fa-check fas"></i></span> Learn about Horizontal vs Vertical Scaling </li> <li> <span><i class="fa-check fas"></i></span> Learn how to tackle Data Consistency concerns </li> <li> <span><i class="fa-check fas"></i></span> Use NATS (or RabbitMQ) as communication brokers </li> <li> <span><i class="fa-check fas"></i></span> Setup Transactional Outbox & Inbox pattern delivery methods </li> <li> <span><i class="fa-check fas"></i></span> Official NestJS Certificate of Completion </li> </ul> <h3 class="m-t-40">What's inside the extension...</h3> <div class="curriculum-wrapper"> <div class="curriculum-block opened"> <div class="category-heading"> <h5>Microservices extension</h5> <span>20 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Before we get started</h6> <span>0:55</span> </div> <div class="video-item"> <h6>2. Prerequisite: Generate Nest application</h6> <span>0:45</span> </div> <div class="video-item"> <h6>3. What are Microservices?</h6> <span>2:48</span> </div> <div class="video-item"> <h6>4. Monolithic Architecture vs Microservices</h6> <span>1:28</span> </div> <div class="video-item"> <h6>5. Creating our first Microservice</h6> <span>4:34</span> </div> <div class="video-item"> <h6>6. Pattern: Database per service</h6> <span>2:23</span> </div> <div class="video-item"> <h6>7. Configuring Docker Compose & Implementing CRUD</h6> <span>7:17</span> </div> <div class="video-item"> <h6>8. Adding Health Checks</h6> <span>3:09</span> </div> <div class="video-item"> <h6>9. Converting from HTTP to NATS</h6> <span>6:36</span> </div> <div class="video-item"> <h6>10. Vertical vs Horizontal Scaling</h6> <span>4:45</span> </div> <div class="video-item"> <h6>11. Request-Response vs Event-Driven</h6> <span>2:53</span> </div> <div class="video-item"> <h6>12. Creating an Alarms Service</h6> <span>5:10</span> </div> <div class="video-item"> <h6>13. Orchestration vs Choreography</h6> <span>3:03</span> </div> <div class="video-item"> <h6>14. Alarm Classifier and Notifications Services</h6> <span>5:08</span> </div> <div class="video-item"> <h6>15. Using RabbitMQ instead of NATS</h6> <span>4:44</span> </div> <div class="video-item"> <h6>16. Message Acknowledgement</h6> <span>6:12</span> </div> <div class="video-item"> <h6>17. Data Consistency</h6> <span>2:27</span> </div> <div class="video-item"> <h6>18. Transactional Outbox Pattern</h6> <span>9:54</span> </div> <div class="video-item"> <h6>19. Inbox pattern</h6> <span>11:39</span> </div> <div class="video-item"> <h6>20. Bonus: Distributed tracing</h6> <span>11:51</span> </div> </div> </div> </div> </div> <div class="checkout-wrapper"> <span class="close-icon">x</span> <img src="no-preview-video.876718d4.jpeg" class="video-preview-placeholder"> <div class="clearfix teachers-wrapper"> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-kamil.606d0144.png"> </div> <div class="teacher-text"> <h3>Kamil Mysliwiec</h3> <p>Creator of NestJS</p> </div> </div> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-mark.3c207ad4.png"> </div> <div class="teacher-text"> <h3>Mark Pieszak</h3> <p>Core Team Member</p> </div> </div> </div> <h5 class="price"> <span class="discount">-25%</span> <span class="current-price">$59.99</span> <span class="original-price">$79.00</span> <span class="vat">+VAT for EU <img src="eu-flag.b6e91d2b.svg" width="19"></span> </h5> <div class="discount-tooltip tooltip"> <p> Is your company located in <img src="https://raw.githubusercontent.com/hjnilsson/country-flags/master/svg/in.svg" width="20" alt="Flag">?<br> Get a <span>-60%</span> parity discount <a href="mailto:support@nestjs.com?subject=Courses - Parity discount&cc=hello@trilon.io&body=Hi team,%0D%0A%0D%0AWe would be interested in getting the parity discount.%0D%0A%0D%0ANOTE: This discount is available to companies, not individuals.%0D%0A%0D%0ACompany: ...%0D%0AWebsite: ...%0D%0ALocation: ... %0D%0ANumber of copies (for each employee): ... [minimum 3 employees]">now</a>! </p> </div> <a href="https://learn.nestjs.com/purchase?product_id=5468604" class="btn btn-green"> Purchase Now <span class="icon"><i class="fa-shopping-cart fas"></i></span> </a> <span class="discount-note"> Need more than 5 licenses? <a href="mailto:support@nestjs.com">Contact us</a> and get a discount! </span> </div> </div> </div> </div> <div class="extension-modal-container" data-extension-key="advanced-concepts"> <div class="course-info-wrapper extension-modal"> <div class="extension-modal-content"> <div class="extension-info"> <h2> Advanced concepts </h2> <p class="large-text"> Gain an even deeper understanding of NestJS and learn how to conquer more complex scenarios in modern Node applications! </p> <p> Prepare for an in-depth guided course & walk-through of some of the Advanced Concepts from the Creator Kamil Mysliwiec himself, and Mark Pieszak (Core Team Member). </p> <ul> <li> <span><i class="fa-check fas"></i></span> Step-by-step lesson progression, code everything alongside us! </li> <li> <span><i class="fa-check fas"></i></span> Featuring 18 videos (with subtitles) and +2 hours of content </li> <li> <span><i class="fa-check fas"></i></span> Learn how to create your own custom Nest schematics </li> <li> <span><i class="fa-check fas"></i></span> Understand durable providers - multi-tenancy & i18n </li> <li> <span><i class="fa-check fas"></i></span> Implement circuit breaker pattern </li> <li> <span><i class="fa-check fas"></i></span> Official NestJS Certificate of Completion </li> </ul> <h3 class="m-t-40">What's inside the extension...</h3> <div class="curriculum-wrapper"> <div class="curriculum-block opened"> <div class="category-heading"> <h5>Advanced Concepts extension</h5> <span>18 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Before we get started</h6> <span>0:52</span> </div> <div class="video-item"> <h6>2. Prerequisite: Generate Nest application</h6> <span>1:01</span> </div> <div class="video-item"> <h6>3. Debugging Common Errors</h6> <span>9:07</span> </div> <div class="video-item"> <h6>4. Explicit vs Implicit Dependencies</h6> <span>2:40</span> </div> <div class="video-item"> <h6>5. Lazy-loading Modules</h6> <span>4:37</span> </div> <div class="video-item"> <h6>6. Accessing IoC container</h6> <span>9:10</span> </div> <div class="video-item"> <h6>7. Worker Threads in Action</h6> <span>9:34</span> </div> <div class="video-item"> <h6>8. Implementing the Circuit Breaker pattern</h6> <span>7:43</span> </div> <div class="video-item"> <h6>9. Building Configurable Modules</h6> <span>11:27</span> </div> <div class="video-item"> <h6>10. Composition with Mixins</h6> <span>5:44</span> </div> <div class="video-item"> <h6>11. What are Schematics?</h6> <span>2:04</span> </div> <div class="video-item"> <h6>12. Adding Custom Schematics</h6> <span>16:57</span> </div> <div class="video-item"> <h6>13. Diving into DI sub-trees</h6> <span>6:00</span> </div> <div class="video-item"> <h6>14. DI sub-trees: A practical example</h6> <span>7:06</span> </div> <div class="video-item"> <h6>15. Understanding Durable Providers</h6> <span>2:10</span> </div> <div class="video-item"> <h6>16. What's Multi-tenancy?</h6> <span>2:16</span> </div> <div class="video-item"> <h6>17. Durable Providers 1: Multi-tenancy</h6> <span>8:41</span> </div> <div class="video-item"> <h6>18. Durable Providers 2: i18n</h6> <span>12:35</span> </div> </div> </div> </div> </div> <div class="checkout-wrapper"> <span class="close-icon">x</span> <img src="no-preview-video.876718d4.jpeg" class="video-preview-placeholder"> <div class="clearfix teachers-wrapper"> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-kamil.606d0144.png"> </div> <div class="teacher-text"> <h3>Kamil Mysliwiec</h3> <p>Creator of NestJS</p> </div> </div> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-mark.3c207ad4.png"> </div> <div class="teacher-text"> <h3>Mark Pieszak</h3> <p>Core Team Member</p> </div> </div> </div> <h5 class="price"> <span class="discount">-22%</span> <span class="current-price">$69.99</span> <span class="original-price">$89.00</span> <span class="vat">+VAT for EU <img src="eu-flag.b6e91d2b.svg" width="19"></span> </h5> <div class="discount-tooltip tooltip"> <p> Is your company located in <img src="https://raw.githubusercontent.com/hjnilsson/country-flags/master/svg/in.svg" width="20" alt="Flag">?<br> Get a <span>-60%</span> parity discount <a href="mailto:support@nestjs.com?subject=Courses - Parity discount&cc=hello@trilon.io&body=Hi team,%0D%0A%0D%0AWe would be interested in getting the parity discount.%0D%0A%0D%0ANOTE: This discount is available to companies, not individuals.%0D%0A%0D%0ACompany: ...%0D%0AWebsite: ...%0D%0ALocation: ... %0D%0ANumber of copies (for each employee): ... [minimum 3 employees]">now</a>! </p> </div> <a href="https://learn.nestjs.com/purchase?product_id=4808474" class="btn btn-green"> Purchase Now <span class="icon"><i class="fa-shopping-cart fas"></i></span> </a> <span class="discount-note"> Need more than 5 licenses? <a href="mailto:support@nestjs.com">Contact us</a> and get a discount! </span> </div> </div> </div> </div> <div class="extension-modal-container" data-extension-key="authentication"> <div class="course-info-wrapper extension-modal"> <div class="extension-modal-content"> <div class="extension-info"> <h2> Authentication and Authorization </h2> <p class="large-text"> Learn how to create your own hand-written Authentication and Authorization with NestJS. Take full control over your Authn/Authz from access to refresh tokens, and everything in between. </p> <p> Prepare for an in-depth guided course & walk-through of all the fundamentals of Authentication & Authorization from the Creator Kamil Mysliwiec himself, and Mark Pieszak (Core Team Member). </p> <ul> <li> <span><i class="fa-check fas"></i></span> Step-by-step lesson progression, code everything alongside us! </li> <li> <span><i class="fa-check fas"></i></span> Featuring 19 videos (with subtitles) and +2 hours of content </li> <li> <span><i class="fa-check fas"></i></span> Build a real-world JWT-based authentication from scratch! </li> <li> <span><i class="fa-check fas"></i></span> Learn how to implement server-side sessions </li> <li> <span><i class="fa-check fas"></i></span> Bonus: Google integration and 2FA </li> <li> <span><i class="fa-check fas"></i></span> Official NestJS Certificate of Completion </li> </ul> <h3 class="m-t-40">What's inside the extension...</h3> <div class="curriculum-wrapper"> <div class="curriculum-block opened"> <div class="category-heading"> <h5>Authentication and Authorization extension</h5> <span>19 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Before we get started</h6> <span>1:21</span> </div> <div class="video-item"> <h6>2. Authentication and Authorization</h6> <span>1:42</span> </div> <div class="video-item"> <h6>3. Creating a Users resource</h6> <span>6:21</span> </div> <div class="video-item"> <h6>4. Hashing Passwords</h6> <span>4:16</span> </div> <div class="video-item"> <h6>5. Implementing Sign-in and Sign-up Routes</h6> <span>7:54</span> </div> <div class="video-item"> <h6>6. What's JWT?</h6> <span>10:36</span> </div> <div class="video-item"> <h6>7. Protecting our routes with a Guard</h6> <span>7:04</span> </div> <div class="video-item"> <h6>8. Adding Public routes</h6> <span>5:34</span> </div> <div class="video-item"> <h6>9. Active User decorator</h6> <span>6:04</span> </div> <div class="video-item"> <h6>10. Implementing Refresh tokens</h6> <span>7:05</span> </div> <div class="video-item"> <h6>11. Invalidating Tokens?</h6> <span>12:27</span> </div> <div class="video-item"> <h6>12. Role-based Access Control</h6> <span>9:54</span> </div> <div class="video-item"> <h6>13. Claims-based Authorization</h6> <span>7:08</span> </div> <div class="video-item"> <h6>14. Policy-based Authorization</h6> <span>10:03</span> </div> <div class="video-item"> <h6>15. Introduction to API Keys</h6> <span>2:16</span> </div> <div class="video-item"> <h6>16. Integrate API Keys feature</h6> <span>11:17</span> </div> <div class="video-item"> <h6>17. Bonus: Two-factor authentication</h6> <span>7:37</span> </div> <div class="video-item"> <h6>18. Bonus: Google authentication</h6> <span>6:38</span> </div> <div class="video-item"> <h6>19. Bonus: Sessions with Passport</h6> <span>11:05</span> </div> </div> </div> </div> </div> <div class="checkout-wrapper"> <span class="close-icon">x</span> <img src="no-preview-video.876718d4.jpeg" class="video-preview-placeholder"> <div class="clearfix teachers-wrapper"> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-kamil.606d0144.png"> </div> <div class="teacher-text"> <h3>Kamil Mysliwiec</h3> <p>Creator of NestJS</p> </div> </div> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-mark.3c207ad4.png"> </div> <div class="teacher-text"> <h3>Mark Pieszak</h3> <p>Core Team Member</p> </div> </div> </div> <h5 class="price"> <span class="discount">-25%</span> <span class="current-price">$79.99</span> <span class="original-price">$105.00</span> <span class="vat">+VAT for EU <img src="eu-flag.b6e91d2b.svg" width="19"></span> </h5> <div class="discount-tooltip tooltip"> <p> Is your company located in <img src="https://raw.githubusercontent.com/hjnilsson/country-flags/master/svg/in.svg" width="20" alt="Flag">?<br> Get a <span>-60%</span> parity discount <a href="mailto:support@nestjs.com?subject=Courses - Parity discount&cc=hello@trilon.io&body=Hi team,%0D%0A%0D%0AWe would be interested in getting the parity discount.%0D%0A%0D%0ANOTE: This discount is available to companies, not individuals.%0D%0A%0D%0ACompany: ...%0D%0AWebsite: ...%0D%0ALocation: ... %0D%0ANumber of copies (for each employee): ... [minimum 3 employees]">now</a>! </p> </div> <a href="https://learn.nestjs.com/purchase?product_id=5676929" class="btn btn-green"> Purchase Now <span class="icon"><i class="fa-shopping-cart fas"></i></span> </a> <span class="discount-note"> Need more than 5 licenses? <a href="mailto:support@nestjs.com">Contact us</a> and get a discount! </span> </div> </div> </div> </div> <div class="extension-modal-container" data-extension-key="graphql-bundle"> <div class="course-info-wrapper extension-modal"> <div class="extension-modal-content"> <div class="extension-info"> <h2> <span class="extra-bundle-discount">BUNDLE -25%</span><br>GraphQL - Bundle </h2> <p class="large-text"> Learn <strong>BOTH (code-first & schema-first)</strong> approaches to creating GraphQL APIs with NestJS. Master GraphQL concepts, tips & tricks, and everything you need to your own enterprise-grade GraphQL APIs. </p> <p> Save 25%, and get access to <strong>TWO</strong> courses, and prepare for in-depth guided walk-through of GraphQL fundamentals and utilizing the code-first & schema-first approaches within NestJS applications from the Creator Kamil Mysliwiec himself, and Mark Pieszak (Core Team Member). </p> <ul> <li> <span><i class="fa-check fas"></i></span> Save 25%! </li> <li> <span><i class="fa-check fas"></i></span> Step-by-step lesson progression, code everything alongside us! </li> <li> <span><i class="fa-check fas"></i></span> Featuring 44 videos (with subtitles) and 4 hours of content </li> <li> <span><i class="fa-check fas"></i></span> Build a real-world GraphQL API application with NestJS </li> <li> <span><i class="fa-check fas"></i></span> Learn how to interact with a Postgres database </li> <li> <span><i class="fa-check fas"></i></span> Official NestJS Certificate of Completion </li> </ul> <h3 class="m-t-40">What's inside this bundle...</h3> <div class="curriculum-wrapper"> <div class="curriculum-block opened"> <div class="category-heading"> <h5>Code first extension</h5> <span>23 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Before we get started</h6> <span>1:24</span> </div> <div class="video-item"> <h6>2. Introduction to GraphQL with NestJS</h6> <span>5:04</span> </div> <div class="video-item"> <h6 class="preview-video-title"> 3. Code First vs Schema First </h6> <span>1:07</span> <button class="btn-watch" data-video-id="740669317"> <i class="fa-play fas"></i> Watch </button> </div> <div class="video-item"> <h6>4. Creating our first GraphQL Application</h6> <span>5:18</span> </div> <div class="video-item"> <h6>5. Introduction to Resolvers and Object Types</h6> <span>6:46</span> </div> <div class="video-item"> <h6>6. GraphQL Schemas, Types, and Scalars</h6> <span>4:02</span> </div> <div class="video-item"> <h6>7. More on Types</h6> <span>3:09</span> </div> <div class="video-item"> <h6>8. Passing Arguments: Returning a Coffee by ID</h6> <span>3:02</span> </div> <div class="video-item"> <h6>9. Manipulating Data with Mutations</h6> <span>5:15</span> </div> <div class="video-item"> <h6>10. Using GraphQL Variables</h6> <span>1:26</span> </div> <div class="video-item"> <h6>11. Creating a Service</h6> <span>3:18</span> </div> <div class="video-item"> <h6>12. Connecting to a Database with TypeOrm</h6> <span>5:30</span> </div> <div class="video-item"> <h6>13. Using Repository to Access Database</h6> <span>3:20</span> </div> <div class="video-item"> <h6>14. Adding Update and Delete Operations</h6> <span>4:44</span> </div> <div class="video-item"> <h6>15. Auto-validate Input Data</h6> <span>2:25</span> </div> <div class="video-item"> <h6>16. Adding Relation to two Entities</h6> <span>8:04</span> </div> <div class="video-item"> <h6>17. Using Field Resolvers</h6> <span>6:30</span> </div> <div class="video-item"> <h6>18. Understanding Custom Scalar Types</h6> <span>6:43</span> </div> <div class="video-item"> <h6>19. Using GraphQL Interfaces</h6> <span>8:36</span> </div> <div class="video-item"> <h6>20. Unions and Enums</h6> <span>5:57</span> </div> <div class="video-item"> <h6>21. Field Middleware</h6> <span>4:40</span> </div> <div class="video-item"> <h6>22. Real-time Updates with Subscriptions</h6> <span>7:31</span> </div> <div class="video-item"> <h6>23. Batching and Caching with Data Loader</h6> <span>10:30</span> </div> </div> </div> <div class="curriculum-block"> <div class="category-heading"> <h5>Schema first extension</h5> <span>21 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Before we get started</h6> <span>1:24</span> </div> <div class="video-item"> <h6>2. Introduction to GraphQL with NestJS</h6> <span>5:04</span> </div> <div class="video-item"> <h6 class="preview-video-title"> 3. Code First vs Schema First </h6> <span>1:07</span> <button class="btn-watch" data-video-id="740669485"> <i class="fa-play fas"></i> Watch </button> </div> <div class="video-item"> <h6>4. Creating our first GraphQL Application</h6> <span>6:44</span> </div> <div class="video-item"> <h6>5. Introduction to Resolvers and Object Types</h6> <span>8:07</span> </div> <div class="video-item"> <h6>6. GraphQL Schemas, Types, and Scalars</h6> <span>3:00</span> </div> <div class="video-item"> <h6>7. Passing Arguments: Returning a Coffee by ID</h6> <span>2:52</span> </div> <div class="video-item"> <h6>8. Using GraphQL Variables</h6> <span>1:26</span> </div> <div class="video-item"> <h6>9. Manipulating Data with Mutations</h6> <span>4:32</span> </div> <div class="video-item"> <h6>10. Creating a Service</h6> <span>3:17</span> </div> <div class="video-item"> <h6>11. Connecting to a Database with TypeOrm</h6> <span>8:19</span> </div> <div class="video-item"> <h6>12. Using Repository to Access Database</h6> <span>3:57</span> </div> <div class="video-item"> <h6>13. Adding Update and Delete Operations</h6> <span>4:40</span> </div> <div class="video-item"> <h6>14. Auto-validate Input Data</h6> <span>4:47</span> </div> <div class="video-item"> <h6>15. Adding Relation to two Entities</h6> <span>9:26</span> </div> <div class="video-item"> <h6>16. Using Field Resolvers</h6> <span>6:17</span> </div> <div class="video-item"> <h6>17. Understanding Custom Scalar Types</h6> <span>5:57</span> </div> <div class="video-item"> <h6>18. Using GraphQL Interfaces</h6> <span>7:14</span> </div> <div class="video-item"> <h6>19. Unions and Enums</h6> <span>5:34</span> </div> <div class="video-item"> <h6>20. Real-time Updates with Subscriptions</h6> <span>7:29</span> </div> <div class="video-item"> <h6>21. Batching and Caching with Data Loader</h6> <span>10:29</span> </div> </div> </div> </div> </div> <div class="checkout-wrapper"> <span class="close-icon">x</span> <iframe src="https://player.vimeo.com/video/740669317?title=0&byline=0&portrait=0&sidedock=0&controls=0" width="380" height="210" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe> <div class="clearfix teachers-wrapper"> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-kamil.606d0144.png"> </div> <div class="teacher-text"> <h3>Kamil Mysliwiec</h3> <p>Creator of NestJS</p> </div> </div> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-mark.3c207ad4.png"> </div> <div class="teacher-text"> <h3>Mark Pieszak</h3> <p>Core Team Member</p> </div> </div> </div> <h5 class="price"> <span class="discount">-25%</span> <span class="current-price">$59.99</span> <span class="original-price">$79.99</span> <span class="vat">+VAT for EU <img src="eu-flag.b6e91d2b.svg" width="19"></span> </h5> <div class="discount-tooltip tooltip"> <p> Is your company located in <img src="https://raw.githubusercontent.com/hjnilsson/country-flags/master/svg/in.svg" width="20" alt="Flag">?<br> Get a <span>-60%</span> parity discount <a href="mailto:support@nestjs.com?subject=Courses - Parity discount&cc=hello@trilon.io&body=Hi team,%0D%0A%0D%0AWe would be interested in getting the parity discount.%0D%0A%0D%0ANOTE: This discount is available to companies, not individuals.%0D%0A%0D%0ACompany: ...%0D%0AWebsite: ...%0D%0ALocation: ... %0D%0ANumber of copies (for each employee): ... [minimum 3 employees]">now</a>! </p> </div> <a href="https://learn.nestjs.com/purchase?product_id=4215020" class="btn btn-green"> Purchase Now <span class="icon"><i class="fa-shopping-cart fas"></i></span> </a> <span class="discount-note"> Need more than 5 licenses? <a href="mailto:support@nestjs.com">Contact us</a> and get a discount! </span> </div> </div> </div> </div> <div class="extension-modal-container" data-extension-key="advanced-bundle"> <div class="course-info-wrapper extension-modal"> <div class="extension-modal-content"> <div class="extension-info"> <h2> <span class="extra-bundle-discount">BUNDLE -22%</span><br>Advanced - Bundle </h2> <p class="large-text"> Gain an even deeper understanding of NestJS with the <strong>Advanced bundle</strong>. Learn how to create your own custom Nest schematics, understand durable providers, dive into DDD, Event Sourcing, Hexagonal architecture, and many concepts more! </p> <p> Save 22%, and get access to <strong>TWO</strong> courses, and prepare for in-depth guided walk-through of real-world Advanced Architectural Concepts & Patterns from the Creator Kamil Mysliwiec himself, and Mark Pieszak (Core Team Member). </p> <ul> <li> <span><i class="fa-check fas"></i></span> Save 22%! </li> <li> <span><i class="fa-check fas"></i></span> Step-by-step lesson progression, code everything alongside us! </li> <li> <span><i class="fa-check fas"></i></span> Featuring 39 videos (with subtitles) and 5 hours of content </li> <li> <span><i class="fa-check fas"></i></span> Official NestJS Certificate of Completion </li> </ul> <h3 class="m-t-40">What's inside this bundle...</h3> <div class="curriculum-wrapper"> <div class="curriculum-block opened"> <div class="category-heading"> <h5>Advanced Concepts extension</h5> <span>18 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Before we get started</h6> <span>0:52</span> </div> <div class="video-item"> <h6>2. Prerequisite: Generate Nest application</h6> <span>1:01</span> </div> <div class="video-item"> <h6>3. Debugging Common Errors</h6> <span>9:07</span> </div> <div class="video-item"> <h6>4. Explicit vs Implicit Dependencies</h6> <span>2:40</span> </div> <div class="video-item"> <h6>5. Lazy-loading Modules</h6> <span>4:37</span> </div> <div class="video-item"> <h6>6. Accessing IoC container</h6> <span>9:10</span> </div> <div class="video-item"> <h6>7. Worker Threads in Action</h6> <span>9:34</span> </div> <div class="video-item"> <h6>8. Implementing the Circuit Breaker pattern</h6> <span>7:43</span> </div> <div class="video-item"> <h6>9. Building Configurable Modules</h6> <span>11:27</span> </div> <div class="video-item"> <h6>10. Composition with Mixins</h6> <span>5:44</span> </div> <div class="video-item"> <h6>11. What are Schematics?</h6> <span>2:04</span> </div> <div class="video-item"> <h6>12. Adding Custom Schematics</h6> <span>16:57</span> </div> <div class="video-item"> <h6>13. Diving into DI sub-trees</h6> <span>6:00</span> </div> <div class="video-item"> <h6>14. DI sub-trees: A practical example</h6> <span>7:06</span> </div> <div class="video-item"> <h6>15. Understanding Durable Providers</h6> <span>2:10</span> </div> <div class="video-item"> <h6>16. What's Multi-tenancy?</h6> <span>2:16</span> </div> <div class="video-item"> <h6>17. Durable Providers 1: Multi-tenancy</h6> <span>8:41</span> </div> <div class="video-item"> <h6>18. Durable Providers 2: i18n</h6> <span>12:35</span> </div> </div> </div> <div class="curriculum-block opened"> <div class="category-heading"> <h5>Architecture and Advanced Patterns extension</h5> <span>21 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Before we get started</h6> <span>0:59</span> </div> <div class="video-item"> <h6>2. Prerequisite: Generate Nest application</h6> <span>1:00</span> </div> <div class="video-item"> <h6>3. What's a Layered (N-tier) Architecture?</h6> <span>3:56</span> </div> <div class="video-item"> <h6> 4. Three-tier Architecture vs Hexagonal Architecture </h6> <span>3:59</span> </div> <div class="video-item"> <h6>5. Hexagonal Architecture in Practice. Part 1</h6> <span>7:07</span> </div> <div class="video-item"> <h6>6. Hexagonal Architecture in Practice. Part 2</h6> <span>12:20</span> </div> <div class="video-item"> <h6>7. Onion Architecture?</h6> <span>2:17</span> </div> <div class="video-item"> <h6>8. Introduction to Domain-Driven Design</h6> <span>4:59</span> </div> <div class="video-item"> <h6>9. Command Query Responsibility Segregation (CQRS)</h6> <span>3:05</span> </div> <div class="video-item"> <h6>10. Experimenting with CQRS. Part 1</h6> <span>5:34</span> </div> <div class="video-item"> <h6>11. What's an Event-Driven Architecture?</h6> <span>2:52</span> </div> <div class="video-item"> <h6>12. Experimenting with CQRS. Part 2</h6> <span>5:15</span> </div> <div class="video-item"> <h6>13. Eventual Consistency</h6> <span>2:35</span> </div> <div class="video-item"> <h6>14. Experimenting with CQRS. Part 3</h6> <span>21:24</span> </div> <div class="video-item"> <h6>15. Introduction to Event Sourcing</h6> <span>3:14</span> </div> <div class="video-item"> <h6>16. Adding an Event Store. Part 1</h6> <span>18:58</span> </div> <div class="video-item"> <h6>17. Adding an Event Store. Part 2</h6> <span>7:20</span> </div> <div class="video-item"> <h6>18. Extra: Autowire Event classes</h6> <span>2:26</span> </div> <div class="video-item"> <h6>19. Rehydrating Aggregates</h6> <span>12:28</span> </div> <div class="video-item"> <h6>20. Snapshots: What & Why?</h6> <span>2:57</span> </div> <div class="video-item"> <h6>21. Understanding Sagas</h6> <span>10:55</span> </div> </div> </div> </div> </div> <div class="checkout-wrapper"> <span class="close-icon">x</span> <img src="no-preview-video.876718d4.jpeg" class="video-preview-placeholder"> <div class="clearfix teachers-wrapper"> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-kamil.606d0144.png"> </div> <div class="teacher-text"> <h3>Kamil Mysliwiec</h3> <p>Creator of NestJS</p> </div> </div> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-mark.3c207ad4.png"> </div> <div class="teacher-text"> <h3>Mark Pieszak</h3> <p>Core Team Member</p> </div> </div> </div> <h5 class="price"> <span class="discount">-22%</span> <span class="current-price">$129.99</span> <span class="original-price">$165.99</span> <span class="vat">+VAT for EU <img src="eu-flag.b6e91d2b.svg" width="19"></span> </h5> <div class="discount-tooltip tooltip"> <p> Is your company located in <img src="https://raw.githubusercontent.com/hjnilsson/country-flags/master/svg/in.svg" width="20" alt="Flag">?<br> Get a <span>-60%</span> parity discount <a href="mailto:support@nestjs.com?subject=Courses - Parity discount&cc=hello@trilon.io&body=Hi team,%0D%0A%0D%0AWe would be interested in getting the parity discount.%0D%0A%0D%0ANOTE: This discount is available to companies, not individuals.%0D%0A%0D%0ACompany: ...%0D%0AWebsite: ...%0D%0ALocation: ... %0D%0ANumber of copies (for each employee): ... [minimum 3 employees]">now</a>! </p> </div> <a href="https://learn.nestjs.com/purchase?product_id=5301050" class="btn btn-green"> Purchase Now <span class="icon"><i class="fa-shopping-cart fas"></i></span> </a> <span class="discount-note"> Need more than 5 licenses? <a href="mailto:support@nestjs.com">Contact us</a> and get a discount! </span> </div> </div> </div> </div> <div class="extension-modal-container" data-extension-key="code-first"> <div class="course-info-wrapper extension-modal"> <div class="extension-modal-content"> <div class="extension-info"> <h2>GraphQL - Code first</h2> <p class="large-text"> Learn everything about the <strong>code-first</strong> approach to creating GraphQL APIs with NestJS. Master GraphQL concepts, tips & tricks, and everything you need to your own enterprise-grade GraphQL APIs. </p> <p> Prepare for an in-depth guided course & walk-through of GraphQL fundamentals and utilizing the code-first approaches within NestJS applications from the Creator Kamil Mysliwiec himself, and Mark Pieszak (Core Team Member). </p> <ul> <li> <span><i class="fa-check fas"></i></span> Step-by-step lesson progression, code everything alongside us! </li> <li> <span><i class="fa-check fas"></i></span> Featuring 23 videos (with subtitles) and 2 hours of content </li> <li> <span><i class="fa-check fas"></i></span> Build a real-world GraphQL API application with NestJS </li> <li> <span><i class="fa-check fas"></i></span> Learn how to interact with a Postgres database </li> <li> <span><i class="fa-check fas"></i></span> Official NestJS Certificate of Completion </li> </ul> <blockquote> <em>Not sure which approach is best for your application? Check out the <a href="#graphql-bundle" target="blank">GraphQL Bundle</a> to learn about both approaches, and <strong>save 25%!</strong></em> </blockquote> <h3 class="m-t-40">What's inside the extension...</h3> <div class="curriculum-wrapper"> <div class="curriculum-block opened"> <div class="category-heading category-heading--no-expand"> <h5>Code first extension</h5> <span>23 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Before we get started</h6> <span>1:24</span> </div> <div class="video-item"> <h6>2. Introduction to GraphQL with NestJS</h6> <span>5:04</span> </div> <div class="video-item"> <h6 class="preview-video-title"> 3. Code First vs Schema First </h6> <span>1:07</span> <button class="btn-watch" data-video-id="740669317"> <i class="fa-play fas"></i> Watch </button> </div> <div class="video-item"> <h6>4. Creating our first GraphQL Application</h6> <span>5:18</span> </div> <div class="video-item"> <h6>5. Introduction to Resolvers and Object Types</h6> <span>6:46</span> </div> <div class="video-item"> <h6>6. GraphQL Schemas, Types, and Scalars</h6> <span>4:02</span> </div> <div class="video-item"> <h6>7. More on Types</h6> <span>3:09</span> </div> <div class="video-item"> <h6>8. Passing Arguments: Returning a Coffee by ID</h6> <span>3:02</span> </div> <div class="video-item"> <h6>9. Manipulating Data with Mutations</h6> <span>5:15</span> </div> <div class="video-item"> <h6>10. Using GraphQL Variables</h6> <span>1:26</span> </div> <div class="video-item"> <h6>11. Creating a Service</h6> <span>3:18</span> </div> <div class="video-item"> <h6>12. Connecting to a Database with TypeOrm</h6> <span>5:30</span> </div> <div class="video-item"> <h6>13. Using Repository to Access Database</h6> <span>3:20</span> </div> <div class="video-item"> <h6>14. Adding Update and Delete Operations</h6> <span>4:44</span> </div> <div class="video-item"> <h6>15. Auto-validate Input Data</h6> <span>2:25</span> </div> <div class="video-item"> <h6>16. Adding Relation to two Entities</h6> <span>8:04</span> </div> <div class="video-item"> <h6>17. Using Field Resolvers</h6> <span>6:30</span> </div> <div class="video-item"> <h6>18. Understanding Custom Scalar Types</h6> <span>6:43</span> </div> <div class="video-item"> <h6>19. Using GraphQL Interfaces</h6> <span>8:36</span> </div> <div class="video-item"> <h6>20. Unions and Enums</h6> <span>5:57</span> </div> <div class="video-item"> <h6>21. Field Middleware</h6> <span>4:40</span> </div> <div class="video-item"> <h6>22. Real-time Updates with Subscriptions</h6> <span>7:31</span> </div> <div class="video-item"> <h6>23. Batching and Caching with Data Loader</h6> <span>10:30</span> </div> </div> </div> </div> </div> <div class="checkout-wrapper"> <span class="close-icon">x</span> <iframe src="https://player.vimeo.com/video/740669317?title=0&byline=0&portrait=0&sidedock=0&controls=0" width="380" height="210" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe> <div class="clearfix teachers-wrapper"> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-kamil.606d0144.png"> </div> <div class="teacher-text"> <h3>Kamil Mysliwiec</h3> <p>Creator of NestJS</p> </div> </div> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-mark.3c207ad4.png"> </div> <div class="teacher-text"> <h3>Mark Pieszak</h3> <p>Core Team Member</p> </div> </div> </div> <h5 class="price"> <span class="discount">-35%</span> <span class="current-price">$39.99</span> <span class="original-price">$59.99</span> <span class="vat">+VAT for EU <img src="eu-flag.b6e91d2b.svg" width="19"></span> </h5> <div class="discount-tooltip tooltip"> <p> Is your company located in <img src="https://raw.githubusercontent.com/hjnilsson/country-flags/master/svg/in.svg" width="20" alt="Flag">?<br> Get a <span>-60%</span> parity discount <a href="mailto:support@nestjs.com?subject=Courses - Parity discount&cc=hello@trilon.io&body=Hi team,%0D%0A%0D%0AWe would be interested in getting the parity discount.%0D%0A%0D%0ANOTE: This discount is available to companies, not individuals.%0D%0A%0D%0ACompany: ...%0D%0AWebsite: ...%0D%0ALocation: ... %0D%0ANumber of copies (for each employee): ... [minimum 3 employees]">now</a>! </p> </div> <a href="https://learn.nestjs.com/purchase?product_id=4215017" class="btn btn-green"> Purchase Now <span class="icon"><i class="fa-shopping-cart fas"></i></span> </a> <span class="discount-note"> Need more than 5 licenses? <a href="mailto:support@nestjs.com">Contact us</a> and get a discount! </span> </div> </div> </div> </div> <div class="extension-modal-container" data-extension-key="schema-first"> <div class="course-info-wrapper extension-modal"> <div class="extension-modal-content"> <div class="extension-info"> <h2>GraphQL - Schema first</h2> <p class="large-text"> Learn everything about the <strong>schema-first</strong> approach to creating GraphQL APIs with NestJS. Master GraphQL concepts, tips & tricks, and everything you need to your own enterprise-grade GraphQL APIs. </p> <p> Prepare for an in-depth guided course & walk-through of GraphQL fundamentals and utilizing the schema-first approaches within NestJS applications from the Creator Kamil Mysliwiec himself, and Mark Pieszak (Core Team Member). </p> <ul> <li> <span><i class="fa-check fas"></i></span> Step-by-step lesson progression, code everything alongside us! </li> <li> <span><i class="fa-check fas"></i></span> Featuring 21 videos (with subtitles) and 2 hours of content </li> <li> <span><i class="fa-check fas"></i></span> Build a real-world GraphQL API application with NestJS </li> <li> <span><i class="fa-check fas"></i></span> Learn how to interact with a Postgres database </li> <li> <span><i class="fa-check fas"></i></span> Official NestJS Certificate of Completion </li> </ul> <blockquote> <em>Not sure which approach is best for your application? Check out the <a href="#graphql-bundle" target="blank">GraphQL Bundle</a> to learn about both approaches, and <strong>save 25%!</strong></em> </blockquote> <h3 class="m-t-40">What's inside the extension...</h3> <div class="curriculum-wrapper"> <div class="curriculum-block opened"> <div class="category-heading category-heading--no-expand"> <h5>Schema first extension</h5> <span>21 lessons</span> </div> <div class="category-items"> <div class="video-item"> <h6>1. Before we get started</h6> <span>1:24</span> </div> <div class="video-item"> <h6>2. Introduction to GraphQL with NestJS</h6> <span>5:04</span> </div> <div class="video-item"> <h6 class="preview-video-title"> 3. Code First vs Schema First </h6> <span>1:07</span> <button class="btn-watch" data-video-id="740669485"> <i class="fa-play fas"></i> Watch </button> </div> <div class="video-item"> <h6>4. Creating our first GraphQL Application</h6> <span>6:44</span> </div> <div class="video-item"> <h6>5. Introduction to Resolvers and Object Types</h6> <span>8:07</span> </div> <div class="video-item"> <h6>6. GraphQL Schemas, Types, and Scalars</h6> <span>3:00</span> </div> <div class="video-item"> <h6>7. Passing Arguments: Returning a Coffee by ID</h6> <span>2:52</span> </div> <div class="video-item"> <h6>8. Using GraphQL Variables</h6> <span>1:26</span> </div> <div class="video-item"> <h6>9. Manipulating Data with Mutations</h6> <span>4:32</span> </div> <div class="video-item"> <h6>10. Creating a Service</h6> <span>3:17</span> </div> <div class="video-item"> <h6>11. Connecting to a Database with TypeOrm</h6> <span>8:19</span> </div> <div class="video-item"> <h6>12. Using Repository to Access Database</h6> <span>3:57</span> </div> <div class="video-item"> <h6>13. Adding Update and Delete Operations</h6> <span>4:40</span> </div> <div class="video-item"> <h6>14. Auto-validate Input Data</h6> <span>4:47</span> </div> <div class="video-item"> <h6>15. Adding Relation to two Entities</h6> <span>9:26</span> </div> <div class="video-item"> <h6>16. Using Field Resolvers</h6> <span>6:17</span> </div> <div class="video-item"> <h6>17. Understanding Custom Scalar Types</h6> <span>5:57</span> </div> <div class="video-item"> <h6>18. Using GraphQL Interfaces</h6> <span>7:14</span> </div> <div class="video-item"> <h6>19. Unions and Enums</h6> <span>5:34</span> </div> <div class="video-item"> <h6>20. Real-time Updates with Subscriptions</h6> <span>7:29</span> </div> <div class="video-item"> <h6>21. Batching and Caching with Data Loader</h6> <span>10:29</span> </div> </div> </div> </div> </div> <div class="checkout-wrapper"> <span class="close-icon">x</span> <iframe src="https://player.vimeo.com/video/740669485?title=0&byline=0&portrait=0&sidedock=0&controls=0" width="380" height="210" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe> <div class="clearfix teachers-wrapper"> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-kamil.606d0144.png"> </div> <div class="teacher-text"> <h3>Kamil Mysliwiec</h3> <p>Creator of NestJS</p> </div> </div> <div class="teacher-meta"> <div class="teacher-image"> <img src="photo-mark.3c207ad4.png"> </div> <div class="teacher-text"> <h3>Mark Pieszak</h3> <p>Core Team Member</p> </div> </div> </div> <h5 class="price"> <span class="discount">-35%</span> <span class="current-price">$39.99</span> <span class="original-price">$59.99</span> <span class="vat">+VAT for EU <img src="eu-flag.b6e91d2b.svg" width="19"></span> </h5> <div class="discount-tooltip tooltip"> <p> Is your company located in <img src="https://raw.githubusercontent.com/hjnilsson/country-flags/master/svg/in.svg" width="20" alt="Flag">?<br> Get a <span>-60%</span> parity discount <a href="mailto:support@nestjs.com?subject=Courses - Parity discount&cc=hello@trilon.io&body=Hi team,%0D%0A%0D%0AWe would be interested in getting the parity discount.%0D%0A%0D%0ANOTE: This discount is available to companies, not individuals.%0D%0A%0D%0ACompany: ...%0D%0AWebsite: ...%0D%0ALocation: ... %0D%0ANumber of copies (for each employee): ... [minimum 3 employees]">now</a>! </p> </div> <a href="https://learn.nestjs.com/purchase?product_id=4215018" class="btn btn-green"> Purchase Now <span class="icon"><i class="fa-shopping-cart fas"></i></span> </a> <span class="discount-note"> Need more than 5 licenses? <a href="mailto:support@nestjs.com">Contact us</a> and get a discount! </span> </div> </div> </div> </div> <footer class="page-footer"> <div class="container"> <div class="social-wrapper"> <a href="https://github.com/nestjs/nest" target="_blank" class="icon"> <i class="fa-brands fa-github"></i> </a> <a href="https://twitter.com/nestframework" target="_blank" class="icon"> <i class="fa-brands fa-x-twitter"></i> </a> </div> <p> Official NestJS Consulting <a href="https://trilon.io" title="Official NestJS Consulting | Angular Consulting" target="_blank">Trilon.io</a><br> Copyright © 2017- <script>function a(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],a("js",new Date),a("config","UA-30617038-6");var e=(new Date).getFullYear();document.write(e);</script> <a href="https://twitter.com/kammysliwiec" target="_blank">Kamil Mysliwiec</a> <br> Designed by <a href="https://dribbble.com/JakubStaron" target="_blank">Jakub Staron</a> </p> </div> </footer> </body></html>

Pages: 1 2 3 4 5 6 7 8 9 10