Building Node.js App With TypeScript

Course Outline Outline
Reading Material
DayModulesSharing
1
  • Basic language features
  • Creating variables with var
  • Functions and functional programming
  • Nesting functions
  • Nesting with function reference variables
  • Creating Objects with JavaScript literal syntax and constructor functions
  • Indexed property access
  • Typeof and objects
  • Special comparisons for objects
  • Scope and Context
  • JavaScript visibility rules
  • Global variables
  • Object functions and execution
  • The this keyword in JavaScript
  • By reference – vs – by value
  • JavaScript types: Number, String, Boolean, Date
  • JavaScript == and false conditions
  • Meet Triple Equals ===
  • Primitives and wrapper objects in JavaScript
  • Arrays – Ordered sequence of items
  • Key JavaScript built-in objects
  • Using Object.create
  • Prototype – key points
  • Metadata – built-in functions and objects
  • Closure
  • Course Introduction
  • Introduction
  • Why use TypeScript?
  • TypeScript Features
  • Tooling and Framework Options - Sublime Text
  • Tooling and Framework Options -TypeScript Compiler
  • Tooling and Framework Options - NodeJS
  • Overview
  • Type Annotations
  • Type Inference
  • Grammar
  • Static and Dynamic Typing
  • Compile Time or Run Time
  • Ambient Declarations and Type Definition Files
  • The Any Type and Primatives
  • Applying Types
  • Objects
  • Functions
  • Arrow Functions and Debugging
  • Functions and Interfaces
  • Static Typing Recap
  • Summary
2
  • Introduction
  • Defining Classes and Properties
  • Casting and Type Definition Files
  • Extending Types
  • Using Interfaces
  • Extending an Interface
  • Overview
  • Identifying a Module
  • Creating an Internal Module
  • Internal Module Accessibility and IIFE
  • Named Modules
  • Extending Modules and Importing Shortcuts
  • Organizing Internal Modules
  • Separating Internal Modules
  • External Modules and Dependency Resolution
  • Module Dependencies
  • Importing External Modules using AMD
  • RAM vs. I/O latency
  • Blocking vs. Non-Blocking
  • Event-driven Programming
  • Event Loop
  • Blocking The Event Loop
  • Node.js Philosophy
  • Download and Install
  • Node REPL
  • Using Node.js to execute scripts
  • First Hello World
3
  • Anatomy of a module
  • The Node Package Manager
  • Private code
  • Accessing and using modules
  • npm commands
  • Creating a project
  • package.json – Configuration file
  • Global vs local package installation
  • Automating tasks with Gulp
  • What are callbacks?
  • Callback-last
  • Error-first
  • When to use Event Emitters?
  • Binding Functions to Events
  • Event Requests
  • Event Listening
  • Callbacks: Error-first
  • Errors in Event Emitters
  • Uncaught Exceptions
  • Using Domains
4
  • Synchronous vs Asynchronous I/O
  • Path and directory operations
  • dirname and ___filename
  • Asynchronous file reads and writes
  • Why Buffers exist?
  • Creating Buffers
  • Reading and Writing Buffers
  • Manipulating Buffers
  • Using buffers for binary data
  • Flowing vs. non-flowing streams
  • Streaming I/O from files and other sources
  • Processing streams asynchronously
  • Configuring event handler
  • What are streams?
  • Read and Write Stream API
  • Flow Control
  • Piping
  • Duplex Stream
  • Transform Stream
  • Configuring event handler
  • The HTTP protocol
  • Building an HTTP server
  • Rendering a response
  • Processing query strings
  • Using Representational State Transfer
  • Configuring TLS
5
  • Intro and Installing Express.js
  • The model-view-controller pattern
  • Building a front-end controller
  • Building a Hello Express application
  • Creating routes
  • Creating actions
  • Rendering Layouts
  • Using templates
  • Adding partials
  • Using locals and conditional templates
  • Modularizing routes using REST
  • Reading POST data
  • Adding middleware
  • The Basics
  • Server side
  • Client side
  • Sending and Receiving Objects
  • Streaming Data
  • How Node.js connects to databases?
  • RDBMS databases and NoSQL Document Stores
  • Connecting to RDBMS and NoSQL databases
  • Configuration and platform setup
  • Performing CRUD Operations
  • Building client requests to web services
  • Modularization
  • The CommonJS and RequireJS specifications
  • Defining modules with exports
  • Modules are singletons
  • Creating a package
  • Module scope and construction
  • Unit testing frameworks
  • What to test and how to test it?
  • Building unit tests with Mocha

Recommanded Books
TitleModern Full-Stack Development: Using TypeScript, React, Node.js, Webpack, and Docker
ISBN978-1-484-25738-8
AuthorFrank Zammetti
Year2020
Publisher Apress
TitleGetting the Most out of Node.js Frameworks: The Essential Tools and Libraries
ISBN978-1-032-06753-7
AuthorSufyan bin Uzayr
Year2022
Publisher CRC Press
TitleDistributed Systems with Node.js
ISBN978-1-492-07729-9
AuthorThomas Hunter Ii
Year2021
Publisher O'Reilly Media
TitleUI Testing with Puppeteer: Implement end-to-end testing and browser automation using JavaScript and Node.js
ISBN978-1-800-20678-6
AuthorDario Kondratiuk
Year2021
Publisher Packt Publishing
TitleNest.js: A Progressive Node.js Framework
ISBNB07KBY31HF
AuthorGreg Magolan; Jay Bell
Year2018
Publisher Bleeding Edge Press
TitleNode.js Design Patterns: Design and implement production-grade Node.js applications using proven patterns and techniques, 3rd Edition
ISBN978-1-839-21411-0
AuthorMario Casciaro, Luciano Mammino
Year2020
Publisher Packt Publishing
TitleNode Cookbook
ISBN978-1-838-55875-8
AuthorBethany Griggs
Year2020
Publisher Packt Publishing
TitleLearning TypeScript
ISBN978-1-098-11033-8
AuthorJosh Goldberg
Year2022
Publisher O'Reilly Media, Inc.
TitleTypeScript for Beginners: The Ultimate Guide
ISBN978-1-032-06758-2
AuthorSufyan bin Uzayr
Year2022
Publisher CRC Press
TitleEssential TypeScript 4: From Beginner to Pro
ISBN978-1-484-27010-3
AuthorAdam Freeman
Year2021
Publisher Apress
TitleMastering TypeScript: Build enterprise-ready, modular web applications using TypeScript 4 and modern frameworks, 4th Edition
ISBN978-1-800-56160-1
AuthorNathan Rozentals
Year2021
Publisher Packt Publishing Ltd
TitleThe TypeScript Workshop: A practical guide to confident, effective TypeScript programming
ISBN978-1-838-82849-3
AuthorBen Grynhaus, Jordan Hudgens, Rayon Hunte, Matthew Thomas Morgan, Wekoslav Stefanovski
Year2021
Publisher Packt Publishing