Grundkurs i Node.js

Node.js har på mindre än ett decennium fullständigt ändrat perceptionen av JavaScript och vad det kan användas för. Plattformen har klart kommit att starkt utmana Java som applikations utvecklings platform. Ett vanligt begrepp är full-stack development , som innebär användning av JS på browser-client sidan i form av SPA ramverk som Angular, användning av JS på server sidan i form av ExpressJS REST web services servrar och användning av JS/JSON i databasen i form av Firestore med flera.

Grundkurs i Node.js
2 dagar
Intermediate
JavaScript programmerare
God erfarenhet av att programmera i JavaScript
  • Node.js
  • MS Visual Code || JetBrains WebStorm
  • Chrome || Firefox || Edge
Här ser du vilka kursdatum som är tillgängliga. Klicka på en av datumknapparna för att anmäla dig till ett kurstillfälle. På kursen pratar läraren svenska, medan vårt kursmaterial alltid är författat på engelska.

Du sitter bekvämt framför datorn och deltar i kursen via internet. Vi använder programvaran Zoom för alla våra fjärrkurser.

I priset ingår kursmaterial som PDF.

Pris: 10 000 kr + MOMS/VAT (25%)

Du sitter bekvämt i ett av våra klassrum, vilka finns centralt placerade i Stockholms innerstad (Östermalmstorg).

I priset ingår tryckt kursmaterial (och som PDF), samt kaffe/te med smörgås på förmiddagen och kaffe/te med bulle på eftermiddagen.

Pris: 16 000 kr + MOMS/VAT (25%)

Om ni är tre eller fler personer från samma företags, kan ni beställa en företagsanpassad kurs. Då håller vi kursen på ett datum som passar er. Antingen på plats i era lokaler eller som en fjärrkurs. Vi kan även mixa fjärr- och klassrumskurs, om några av er önskar delta på distans medan resten föredrar att ses på plats.

Företagsanpassad Kurs

Här är ett sammandrag av vad du får lära dig på kursen.

  • Understand how Node.js executes
  • Write programs with event emitters
  • Write programs that handle files
  • Implement HTTP clients and servers
  • Implement REST web services with Express.js

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 a 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()

Process

  • 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

Buffer

  • 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

EventEmitter

  • 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 socket.io
  • Building a simple chat system using socket.io

The NodeJS Eco-System

  • GulpJS build tool
  • Bower UI library dependency manager
  • Testing runners and frameworks
  • RxJS
  • NodeJS in embedded systems