Cursusbeschrijving

Node.js brengt JavaScript naar de server en verrijkt haar met veelzijdige APIs.

In deze training leer je Node.js van binnen en van buiten kennen. We gaan aan de slag met alles wat Node te bieden heeft, maar ook wat er in het ecosysteem aanwezig is. Denk hierbij aan bestandssysteemoperaties en het opzetten van een low-level (web)server, maar ook aan het gebruik van webframeworks en het benaderen van databases middels een abstractielaag.

Gaandeweg worden interessante geschiedenismomenten, ervaringen en best practices gedeeld.

Onderwerpen

  • Node.js basis
  • In deze module leer je de basis van het werken met Node.js.
  • Lessen
  • * Node.js-scripts
  • CommonJS en ES Modules
  • Debuggen van Node-scripts
  • Lab: Run je eerste script en ontdek debugmogelijkheden
  • Na het afronden van deze module kunnen deelnemers:
  • * Run Node.js-scripts
  • Importeer modules met CommonJS en ES Modules
  • Debug Node-scripts met meerdere debugtools
  • ### Bestandssysteem
  • In deze module leer je om te gaan met het bestandssysteem via Node.js.
  • Lessen
  • * Lezen/schrijven van bestanden
  • Lezen/schrijven van directories
  • Werkwijze met en zonder promises
  • Werken met streams
  • Bestandssysteem-events
  • Lab: gebruik de bestandssysteem API om te reageren op veranderingen in een directory en bestanden te lezen/schrijven
  • Na het afronden van deze module kunnen deelnemers:
  • * Kleine en grote bestanden uitlezen/wegschrijven
  • Reageren op bestandssysteem-events
  • ### Modules
  • In deze module leer je alles over het maken en gebruiken van npm packages.
  • Lessen
  • * npm en npx CLI commands
  • package.json en package-lock.json
  • Installeren en gebruiken van npm packages
  • Een eigen package maken met CommonJS of ES Modules
  • Populaire packages
  • Lab: Creëer een npm package
  • Na het afronden van deze module kunnen deelnemers:
  • * De npm en npx CLI-commands gebruiken
  • Node.js-projecten configureren
  • npm packages installeren en gebruiken
  • ### Event loop
  • In deze module leer je hoe JavaScript omgaat met asynchroniteit.
  • Lessen
  • * Event loop vs het gebruiken van threads
  • Voorbeelden met Node.js / browser / libraries
  • Na het afronden van deze module kunnen deelnemers:
  • * Async-situaties herkennen
  • Problems met asynchroniteit debuggen en verhelpen
  • ### Testing
  • In deze module leer je hoe je Node.js-scripts kunt testen.
  • Lessen
  • * Unittesten met Mocha, Chai en Sinon
  • Mutation testing met Stryker
  • Lab: unittest een klein project, inclusief code coverage en mutation testing
  • Na het afronden van deze module kunnen deelnemers:
  • * Unittesten met Mocha, Chai en Sinon
  • Code coverage produceren aan de hand van Istanbul
  • Stryker gebruiken om mutation testing uit te voeren
  • ### TCP en HTTP
  • In deze module leer hoe je TCP- en HTTP-requests kunt versturen en ontvangen.
  • Lessen
  • * Reageren op binnenkomende TCP-/HTTP-requests
  • Versturen van TCP-/HTTP-requests
  • Lab: Opzetten van een server
  • Na het afronden van deze module kunnen deelnemers:
  • * TCP-/HTTP-requests versturen
  • Reageren op TCP-/HTTP-requests
  • Inzien wat er bij komt kijken om een server op te zetten
  • ### Webframeworks
  • In deze module leer je hoe je een backend kan realiseren met JavaScript.
  • Lessen
  • * JavaScript in the backend
  • Node.js en Deno
  • Verschillende Node.js webframeworks, zoals Express, Nest en Socket.io
  • Waarop te letten bij de keuze voor een webframework
  • Lab: Opzetten van een webserver met een webframework
  • Na het afronden van deze module kunnen deelnemers:
  • * Beredeneren waarom een JavaScriptgebaseerde backend een solide keuze kan zijn
  • Kiezen tussen Node.js en Deno
  • Bepalen welk framework hen in een bepaalde situatie het beste zal helpen
  • ### Data access
  • In deze module leer je over de verschillende aanpakken voor data access.
  • Lessen
  • * NoSQL- en SQL-databases
  • Verbinden met een database aan de hand van native connectors
  • Verbinden met een database aan de hand van een query builder
  • Verbinden met een database aan de hand van een ODM/ORM
  • Lab: Gebruik een database om entiteiten in op te slaan en van op te halen
  • Na het afronden van deze module kunnen deelnemers:
  • * Verbinden met NoSQL- en SQL-databases
  • Bepalen welk niveau van abstractie het handigst is voor hun project
  • Materiaal

    Info Support-cursusmateriaal en het boek Node.js in Action

    Voorkennis

    JavaScript-kennis