Skip to content

icazemier/nodejs-voorbeelden

Repository files navigation

Inleiding

Node.js

Node.js is een "run-time environment" waar JavaScript uitgevoerd wordt voor bijvoorbeeld server-side applicaties. Node.js wordt veel gebruikt voor server applicaties vergelijkbaar met een combinatie van Apache+PHP in 1. Maar je kunt er ook desktop applicaties mee ontwikkelen bijvoorbeeld met Electron.

In het verleden werd JavaScript alleen in de browser toegepast om websites aan te vullen met extra technologie en daarmee functionaliteiten.

JavaScript (JS) mag je niet verwarren Java (Oracle), ondanks dat de syntax erg veel op elkaar lijkt.

Wat ga je leren

We zullen Node.js gebruiken om JavaScript te leren om jouw te laten zien wat de kracht van Node.js is.

Bij veel programmeertalen wordt ook gesproken over concurrency. Dit is zeer belangrijk om te leren, omdat Node.js eigenlijk niet anders werkt!

Dus dit zullen we snel moeten leren omdat alles eigenlijk zo werkt... :-S. Als je dit een keer gedaan hebt, dan heb je de mindset in elk geval, ook voor andere programmeertalen. We kunnen Node.js eigenlijk niet goed inzetten anders.

Daarnaast gaan we ons ook richten op versiebeheer met GIT. Met GIT wordt op dit moment door elke softwareontwikkelaar gewerkt en is echt niet meer weg te denken uit de applicatieontwikkeling. Eigenlijk doe je niet mee als je niet GIT een beetje beheert.

We gaan je ook leren om netjes te documenteren in de programmeercode. Dit doen we doormiddel va jsdocs en een z.g.n. linter. We leren ook omgaan met de .editorconfig file. Later hier meer over ;)

Dit alles zullen we tijdens de lessen met Windows uitvoeren, maar het is heel goed mogelijk met MacOS of Linux!

Wat ga je niet leren bij de lessen

We zullen zoveel mogelijk proberen toe te lichten om GIT, Node.js en JavaScript te doen tijdens deze lessen. Maar 1 ding staat als een paal boven water, dat is dat je zelf er mee aan de gang moet. Alleen dan leer je het echt!

Dus zorg dat je mee doet in de lessen, aanwezig bent, en actief ermee aan de gang gaat (wellicht buiten de lessen om ook!).

Node.js applicaties worden voornamelijk in JavaScript geschreven. Maar het is ook mogelijk om C++ programma's te combineren met Node.js. Dit is te complex, en zullen we niet behandelen.

Het programma

Periode xx

  • 00 Introductie

    1. Wat is Node.js en wat zijn overeenkomsten met andere platformen
    2. Voordelen Node.js: Sneller ontwikkelen in JavaScript dan in Java
    3. Wie gebruikt Node.js: Paypal, LinkedIn, Yahoo, Mozilla, Netflix
  • 01 Beginnen (Programma's die nodig zijn om goed te beginnen)

    1. Node Version Manager (nvm) for Windows installeren en kunnen bedienen
    2. Een Node.js LTS (Long Term Support) versie installeren met nvm en testen
    3. Microsoft Visual Studio Code (VS Code) of IntelliJ downloaden en installeren
    4. Een directory maken voor het eerste Node.js project
    5. Open de directory met VS Code of IntelliJ
    6. package.json creëren en begrijpen
    7. package.json voorzien van node_modules (dependencies en devDependecies)
  • 02 Oefeningen die ertoe doen (Kopieren/plakken van voorbeeldcode aanpassen en bestuderen)

    1. Een eenvoudige eerste HTTP server
    2. Een meer geavanceerde HTTP Server en HTML tonen in de browser
    3. Ontdekken dat een argument in een functie ook de referentie naar een functie kan zijn!
  • 03 De basis - deel 2

    1. Node.js Debuggen met VS Code of IntelliJ
    2. Datatypes bestuderen tijdens het Debuggen (geheugenmodel hierin terugzien)
    3. Objecten in Javascript met eigenschappen en functies (Object literal)
  • 04 De basis - deel 1 (Functies en verwerkingen)

    1. Variabelen gebruiken (geheugen) in relatie tot datatypes in JavaScript
    2. Functies en Sequentiele verwerking oefenen
    3. Callback functies als functie-argument doorgeven (anonymous callback function)
    4. Asynchrone verwerkingen uitleggen (Bij Input/Output gebruiken zoals database requests, netwerk requests, filesystem)
    5. Callback functies debuggen met Asynchrone verwerkingen (setTimeout als voorbeeld)
  • 05 Oefeningen die ertoe doen (Asynchrone verwerkingen)

    1. JSON Data ophalen van een andere api
    2. Deze data verwerken en tonen op jouw eigen website
    3. Leren hoe error verwerking afgesproken is in Node.js ("Ongeschreven regel" maar wel doen!)
    4. Try Catch principe, wat niet kan bij Asynchrone verwerkingen, alleen sequentiele verwerkingen
  • 06 Meer basis

    1. Truthy en Falsy begrijpen in JavaScript (telkens opnieuw nadenken)
    2. Lussen begrijpen en oefenen
    3. Functies en "Parallele" verwerkingen (Bewustwording Concurrency in Node.js)
    4. The Eventloop (1 Thread??)
  • 07 Oefeningen die ertoe doen

    1. Snappen dat je Server Side JavaScript en Client Side JavaScript in verschillende omgevingen uitgevoerd worden
    2. Direct hosten/serveren van statische content (zoals HTML, CSS, Client side JavaScript etc)
    3. Direct hosten/serveren van statische content van node_modules (bijvoorbeeld bootstrap e.d.)
    4. Scheiden van HTML en Data doormiddel van HTML Templating (Hergebruiken HTTP code renderen met JSON)
  • 08 NPM Scripts

    1. Documentatie schrijven en genereren uit jouw JavaScript code volgens jsdocs
    2. Je eerste Unit Test Schrijven
    3. Linter (eslint) toepassen voor Node.js code
    4. Regels vaststellen in eslint configuratie (plugins)
  • 08 Herhalen en meer Asynchrone verwerkingen met oefeningen die ertoe doen

    1. Asynchrone verwerkingen met manipuleren van grafische bestanden (files verwerken)
    2. Async callbacks, Promisses
    3. "Parallele" verwerkingen van meerdere grafische bestanden tegelijk (Concurrent)
  • 09 Jullie eerste project in een Team! Maar hoe? Starten met GIT!

    1. Vorm Teams van 2 a 3 ontwikkelaars (developers), 1 project(tje)
    2. Projecten (inspiratie): Een eenvoudige chat website (HTTP POST/GET requests)
    3. GIT: Introductie (Grafische GIT client installeren)
    4. GIT: Initializeren (git init)
    5. GIT: .gitignore aanmaken en begrijpen
    6. GIT commit (leren dat een commit message heel belangrijk is, maar zeer kort dient te zijn)
    7. Een "Remote repository" koppelen
    8. De volgorde aanhouden : 1. Commit 2. Pull 3. Push

Bronnen

GIT (Grafisch)

JavaScript

Node +

Node installeren

Zeer veel gebruikte Node Bibliotheken (npm libraries)

Voorbeelden in Node.js

RESTful api's

Node.js referenties

Benchmark

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published