Optional: Vermittlung des notwendigen Grundlagenwissens in JavaScript/TypeScript, JSON, REST, HTML, CSS
Grundlagen
- Was ist node.js?
- Kurze Entwicklungsgeschichte
- Konzepte von node.js: Non blocking I/O, Event Loops, Single Threading
- Installation und Konfiguration von node.js
- Erste Hallo Welt-Beispiele in node.js: HTTP- und TCP-Server erstellen
- Arbeit mit Events
- Optional: Bespechung eines Editors z.B. WebStorm, Visual Studio Code (VSCode), Eclipse oder Node.js-Werkzeuge für Visual Studio o.a. auf Wunsch
- Standardmodule (globale Module, Dateizugriff, Async, HTTP/HTTPS)
Node Package Manager (NPM)
- Pakete einbinden und aktualisieren
- Skripte starten
- Überblick über die wichtigsten NPM-Pakete
Express Web Application Framework für node.js
- Anwendungsarchitektur mit Express
- Routing
- Express API
Entwicklung von REST-HTTP-Diensten/WebAPIs/Backends
- Actions (GET, POST, PUT usw.)
- Swagger OpenAPI
- Versionierung
Server Side Rendering (SSR) von Webseiten
- Views/Template-Engines PUG (früher: JADE)
- Mehrsprachigkeit
Ressourcenzugriffe
- Zugriff auf das lokale System des Servers
- Dateisystemzugriffe mit fs
- Datenbankzugriffe (z.B. MongoDB, SQLite, MySQL, Microsoft SQL Server, Redis u.a.)
- ORM mit TypeORM oder Sequelize (andere auf Anfrage)
- Aufruf von RESTful-Webservices
- Push Notifications mit Websockets ("Echtzeitkommunikation")
Entwicklungsprozess
- Debugging
- Deployment
- Hosting
- Testing
Optional:
- Andere node.js-basierte Anwendungsframeworks wie nestJS, Koa oder Fastify
- Weitere Node.js-Module nach Absprache
- Entwicklung eines eigenen NPM-Moduls
Optional: Entwicklung von node.js-basierten Konsolenanwendungen
- Eingebaute Funktionen wie process.argv, process.stdin, process.stdout, process.env
- Ausgaben mit console
- Rückgabewerte mit process.exit
- Prozesse und Systembefehle ausführen mit child_process-Modul
- Argumenten- und Befehlsverarbeitung mit Commander.js, Yargs, Oclif o.a. (auf Anfrage)
- CLI-Oberflächen & Interaktivität mit Inquirer.js, Chalk, Ora, Figlet o.a. (auf Anfrage)