The Node.js Master Class – No Frameworks, No NPM | Node v8.x

The Node.js Master Class – No Frameworks, No NPM | Node v8.x

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 15.5 Hours | 1.91 GB

Advanced NodeJS: Build an MVC app, a REST API, and a CLI in plain Node JS (ES5 Javascript) with no 3rd-party libraries.

Welcome to the Node.js Master Class, where you’re going to learn to build applications in raw Node.js with no frameworks, and no external libraries. And yes, that means no NPM! Together we’re going to build 3 pieces of software from scratch in plain ES5 Javascript.

  • A RESTful API
  • A web app GUI
  • A terminal based CLI (Command-line program)

And you’re going to do all of this with nothing but Node.js’s standard API. Just a text editor, a terminal, and Node.js. Nobody else’s code, nobody else’s frameworks, nobody else’s libraries. We won’t be using NPM at all, just Node. Your apps won’t even have a package.json file, because we don’t need any dependency management.

HOW IS THIS COURSE STRUCTURED?

Section 1: Course Overview
In this section we introduce the course and myself (the instructor), and then get you setup with everything you need to complete the exercises that come later. We’ll also go over the requirements and prerequisites for this course to ensure you’re in the right place. You’ll be given a quick quiz on Javascript and the *NIX shell to make sure you’re ready to go through the course.

Section 2: Background Information
I’ll give you a conceptual overview of Node.js, and the story behind it. We’ll start with the history of Node.js, then we’ll walk through the nuts and bolts of what Node is, what V8 is, and how they both work, as well as how they relate to each other. I’ll then show you a sample Node.js app so we can apply what we just learned to a real-world example. We’ll then talk about a few common conventions used with Node.js, as well as the differences between writing javascript for Node.js, and writing it for the browser. We’ll also go over the differences between Node.js APIs, and built in javascript functions, and we’ll discuss the Read-eval-print-loop (REPL) that comes with Node.

Section 3: Building a RESTful API
Now we’re going to jump right in and build a RESTful API together. Doing this exercise will get you familiar with several key sections of the Node.js docs: “fs” the file system, http, crypto, lib, string decoder and path, to name a few.

Section 4: Building a web app GUI
We’re going to build a simple web GUI. The major purpose of this app will be to consume the API we just built, but I’ll also use it as an excuse to show you how you can build complex templated views with Node.

Section 5: Building a CLI
You’re going to build a command-line application that takes user-inputs from the console, processes them, and writes outputs back out. This will get you acquainted with Node’s Readline, Events, TTY, V8, and OS modules. Very few Node.js developers have ever built a command-line tool in Node. After this section, you’ll be one of them.

Section 6: Gaining Stability
Did you know that Node has a built-in assertion library and that writing tests is as easy as creating a file? No “test runners” or pipelines needed here. Now you’re going to write tests for a few of the functions that we wrote in the previous projects. We’re going to write unit tests and also show some examples of how you’d test your new API over HTTP. We’ll also explore how to use the “strict” javascript flag to lint your code for syntax errors, and how to use the debugger to pinpoint issues during execution.

Section 7: Gaining Performance
Speed and scalability are two of the most popular reasons that devs choose to work in Node, but few know how to profile or benchmark their code, or tweak it for performance. This will be a crash course on performance optimization and all-things speed and scalability. Here we’ll refactor some of our earlier apps so they’re less resource-hungry, and then use the Node.js “performance hooks” module to time the execution of certain processes. We’ll then dive into Node’s “cluster” and “child processes” modules to explore how any Node.js app can take advantage of all the cores available to it.

Section 8: Loose Ends
Once you reach section 8, you’ll be a Node development-force to be reckoned with. But, you’ll still be missing experience with a few key Node.js APIs that we didn’t fit into the earlier lectures. These lectures are dedicated to all these loose ends. You’ll get experience with HTTP2, VM, UDP, Net, TLS, and more. Once this section is done, you’re done. There really won’t be anything left to teach you.

Table of Contents

Course Overview
1 Table of Contents
2 Prerequisites
3 Setting Up Your Workstation

Background Information
4 The Story of Node.js
5 What is V8, exactly
6 What is Node.js, exactly
7 Anatomy of a Node Application
8 Common Node Conventions
9 Node.js vs the Browser

Building a RESTful API
10 Section Overview
11 Basic Scaffolding
12 Starting a Server
13 Parsing Request Paths
14 Parsing HTTP Methods
15 Parsing Query Strings
16 Parsing Headers
17 Parsing Payloads
18 Routing Requests
19 Returning JSON
20 Adding Configuration
21 Adding HTTPS Support
22 Service 1 ping
23 Storing Data
24 Service 2 users
25 Service 3 tokens
26 Service 4 checks
27 Connecting to an API
28 Background Workers
29 Logging to Files
30 Logging to the Console
31 Section Review

Building a Web App GUI
32 Section Overview
33 Refactoring for a GUI
34 Using Templates
35 Serving Static Assets
36 Making AJAX Requests
37 Page 1 Index
38 Page 2 Create Account
39 Page 3 Create a Session
40 Page 4 Deleted Session
41 Page 5 Edit Account
42 Page 6 Deleted Account
43 Page 7 Create a Check
44 Page 8 Dashboard
45 Page 9 Edit a Check
46 Section Review

Building a CLI
47 Section Overview
48 Adding a CLI
49 Handling Events
50 Command 1 Exit
51 Command 2 Man Help
52 Command 3 Stats
53 Command 4 List Users
54 Command 5 More User Info
55 Command 6 List Checks
56 Command 7 More Check Info
57 Command 8 List Logs
58 Command 9 More Log Info
59 Section Review

Gaining Stability
60 Section Overview
61 Creating Errors
62 Using the Debugger
63 Linting with Strict
64 Adding a Test Runner
65 Adding Unit Tests
66 Adding API Tests
67 Section Review

Gaining Performance
68 Section Overview
69 Refactoring for Performance
70 Using Performance Hooks
71 Using a Cluster
72 Using Child Processes
73 Section Review

Loose Ends
74 Section Overview
75 HTTP2
76 VM
77 UDP Datagram
78 Net
79 TLS SSL
80 REPL
81 Async Hooks
82 Section Review
83 Thank you!