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


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

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.


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.


This course is a master class. It is for Node.js and Javascript developers who want uncommon abilities. Do you want write your own Node.js framework? How about author your own useful Node.js modules? This course is going to teach you what you need to know to accomplish that. Do you want to be able to fix Node.js libraries when they break, and submit pull requests to your favorite Node.js projects to make them better and stronger? Then this course is the way forward.

My goal for this course, is to show you how beautiful Node.js is, and to take your skillset up to the next level. But, be fair warned: this course is not going to be quick, and it certainly isn’t going to be easy. But, it will be worth it. If you’re looking for a challenge, you’ve come to the right place.

Who is the target audience?
  • Any Javascript developer who wants to learn Node the hard way and isn’t afraid of a challenge.
  • Any Nodejs developer who is sick of working in frameworks like Express, Hapi, Sails, etc
  • Any NodeJS developer who wants to learn the whole Node API.


One Comment

  1. Sanele October 23, 2018 Reply

Add a Comment

Your email address will not be published. Required fields are marked *