Course in NodeJS

Course in building server-side application using NodeJS

NodeJS have in less than a decade completely changed the preception of what JavaScript is and what it can be used for. It is our strong belief that NodeJS will overthrow Java as the primary application development langauge.

A commong concept is full-stack development , which means usage of JS on the browser client-side in the form of a SPA framework as Angular, usage on the server-side in the form of an ExpressJS REST web services application and usage of JS/JSON within a NoSQL database such as MongoDB.

This is what you will learn
  • Understand the execution model of JS and NodeJS
  • Develop programs using event emitters
  • Develop programs accessing files
  • Implment HTTP clients and servers
  • Implement REST web services using ExpressJS
Course Contents

Background and Overview

  • History
  • Ryan Dahl
  • Properties
  • Architecture
  • Wrapping the LINUX system API
  • Installation of NodeJS and NPM
  • Running the REPL
  • Running script files
  • NodeJS API documentation

Some NodeJS Programs

  • Simple arithmetics and print-outs
  • Writing to files
  • Reading from files
  • Processing files
  • Simple HTTP client
  • Simple HTTP server

Understanding Modules

  • What is module
  • Different JS module systems
  • Understanding the CommonJS/NodeJS module system
  • Defining a module
  • Requiring a module
  • How NodeJS performs module lookup
  • Module file search order

NodeJS Basic API

  • Script name and location
  • The console object
  • Using the os module
  • Assertions

Asynchronous Execution

  • What is asynchronous execution
  • Using calls-backs
  • The boomerang effect
  • Call-back chains
  • Understanding promises
  • Working with promise chains
  • Async functions using await in ES6
  • Handling errors with async/await

JavaScript Execution Model

  • JavaScript engines
  • Understanding the call-stack and stack-frames
  • Invocation of asynchronous function blocks
  • The JS event-loop
  • A model for understanding how JS executes
  • Using Loupe to visualize JS execution
  • The NodeJS nested event-loops

Delayed Execution

  • Using setTimeout
  • Cancelling
  • Using setInterval
  • Understanding process.nextTick()


  • The process object
  • Platform meta-data
  • Standard I/O, stdin, stdout and stderr
  • Terminating the execution
  • Exit handlers
  • Getting command-line arguments
  • Getting environment variables
  • Handling LINUX signals


  • The purpose of the Buffer class
  • Creating Buffer objects
  • Character encoding, ASCII, UTF8, Base64
  • Decoding buffers
  • Accessing characters
  • Slicing buffers
  • Copying buffers

Working with Files

  • The fs module
  • Understanding difference between asynchronous and synchronuos file operations
  • Getting file meta-data
  • Manipulating file paths
  • Opening and closing a file
  • Reading from a file
  • Writing to a file


  • How the event-emitter pattern prevents the boomerang effect
  • Event types
  • Creating event-emitters
  • Registering call-backs
  • Emitting events

Understanding Streams

  • Streams and event-emitters
  • Readable streams
  • Writable streams
  • Ending streams
  • Pausing and resuming streams
  • Draining streams
  • NodeJS stream pipes
  • Copying streams
  • Line-oriented text processing
  • Module readline

Using NPM

  • What is NPM
  • Installing packages
  • Configuration
  • Understanding package.json
  • Dependencies vs. dev-dependencies
  • Searching for NPM libraries
  • Useful NPM commands
  • NPM scripts
  • Using NPM as a build tool

HTTP Client

  • Understanding HTTP
  • Creating an outgoing TCP connection
  • Making an outgoing HTTP request
  • Using the request module
  • Sending a JSON payload

HTTP Server

  • A simple HTTP server
  • Piping data
  • Serving static (asset) files
  • Using connect middleware
  • Logging
  • Handling errors
  • Parsing query strings
  • Parsing request bodies
  • Receiving JSON payload

Using Express

  • What is Express.js
  • Routes
  • Build a REST WS server with express
  • Handling JSON payload

Using Socket.IO

  • What is web-sockets
  • Installing and configuring
  • Building a simple chat system using

The NodeJS Eco-System

  • GulpJS build tool
  • Bower UI library dependency manager
  • Testing runners and frameworks
  • RxJS
  • NodeJS in embedded systems
Duration2 Days
AudienceJavaScript programmers
PrerequisitesExperienced in JavaScripot programming
  • NodeJS
  • JetBrains WebStorm IDE
  • Google Chrome browser
Course Dates
Date PlacePrice
2020-02-20Stockholm 15 000 kr
2020-03-12Stockholm 15 000 kr
2020-04-02Stockholm 15 000 kr
2020-04-27Stockholm 15 000 kr
2020-05-18Stockholm 15 000 kr

Same-Company Discout

We offer a 20% discount for additional participants from the same company and at the same course date. Read more here.

Teaching Language

Our printed course material is always authored in English. The oral presentation in our classrooms is generally in Swedish, unless all participants agree to that we perform the course in English.

On-Site Course

If you order an On-Site course, we will come to you and hold the course in your office. The price is determined by our price model and is based on the number of course days, number of participants and any travel and lodging.

Read more about out price modell and term of sales here.

Related Courses
CourseDays Level
GulpJS2 BeginnerShow