Die Serverwelt von Node.js
()
About this ebook
Read more from Manuel Rauber
Expertentipps zu Angular: Neuerungen in Angular 6, Umgang mit Microservices, Performanz und UX-Design Rating: 0 out of 5 stars0 ratings
Related to Die Serverwelt von Node.js
Titles in the series (100)
Geolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsZend Framework 2: Für Einsteiger und Umsteiger Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsEinstieg in Google Go Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5Erfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Rating: 0 out of 5 stars0 ratingsQualitätssicherung mit JavaScript und PHP Rating: 0 out of 5 stars0 ratingsErfolgreich bewerben in der IT - die besten Praxistipps von A wie (Anschreiben) bis Z (wie Zeugnis) Rating: 0 out of 5 stars0 ratingsQualität in IT-Architekturen: Management Rating: 0 out of 5 stars0 ratingsM2M by Eclipse Rating: 0 out of 5 stars0 ratingsApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Rating: 0 out of 5 stars0 ratings
Related ebooks
Einstieg in TypeScript: Grundlagen für Entwickler Rating: 0 out of 5 stars0 ratingsASP.NET Core: Eine Einführung Rating: 0 out of 5 stars0 ratingsCross-Plattform-Entwicklung mit HTML und JavaScript Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 16 Rating: 0 out of 5 stars0 ratingsJavaScript und Ajax: Das Praxisbuch für Web-Entwickler Rating: 0 out of 5 stars0 ratingsVue.js für alle: Wissenswertes für Einsteiger und Experten Rating: 0 out of 5 stars0 ratingsDocker und die Containerwelt: Einstieg und Expertentipps rund um Docker-Container Rating: 1 out of 5 stars1/5Progressive Web-Apps: Offlinefähige Web-Anwendungen mit nativen Qualitäten Rating: 0 out of 5 stars0 ratingsWindows PowerShell: Grundlagen & Scripting-Praxis für Einsteiger – Für alle Versionen Rating: 0 out of 5 stars0 ratingsSharePoint Kompendium - Bd. 13 Rating: 0 out of 5 stars0 ratingsEclipse SmartHome und Smart Office: Intelligente Lösungen in der Heimautomation Rating: 0 out of 5 stars0 ratingsHTML5, JavaScript und jQuery: Der Crashkurs für Softwareentwickler Rating: 2 out of 5 stars2/5.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsSingle-Page-Web-Apps: JavaScript im Einsatz: Webseiten erstellen mit AngularJS, Meteor und jQuery Mobile Rating: 0 out of 5 stars0 ratingsAndroid-Programmierung kurz & gut Rating: 0 out of 5 stars0 ratingsJava – die Neuerungen in Version 9 bis 12: Modularisierung, Syntax- und API-Erweiterungen Rating: 0 out of 5 stars0 ratingsMicrosoft Azure: Cloud Entwicklung für lokale Applikationen Rating: 0 out of 5 stars0 ratingsVue.js kurz & gut Rating: 0 out of 5 stars0 ratingsAndroid mit Arduino™ Due: Steuern Sie Ihren Arduino™ mit einem Android-Gerät Rating: 5 out of 5 stars5/5Mach's einfach: Erste Schritte mit der Smart-Home-Programmierung: Einstieg in die Hausautomation mit Node-RED Rating: 0 out of 5 stars0 ratingsAutomatisiertes Testen: Testautomatisierung mit Geb und ScalaTest Rating: 0 out of 5 stars0 ratingsDynamische Webseiten: Einstieg in HTML, PHP und MySQL Rating: 0 out of 5 stars0 ratingsVMware vSphere 6.5: Deployment, Migration, Patch-Management Rating: 5 out of 5 stars5/5Linux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Rating: 0 out of 5 stars0 ratingsNext Level JavaScript: Schlagworte Rating: 0 out of 5 stars0 ratingsGraphQL: Eine Einführung in APIs mit GraphQL Rating: 0 out of 5 stars0 ratingsKompaktkurs C# 7 Rating: 0 out of 5 stars0 ratingsEIGENE Blockchain und Smart Contract's erstellen: Für Anfänger geeignet, Schritt für Schritt Erklärung Rating: 0 out of 5 stars0 ratings
Networking For You
Heim-Netzwerke: Netzwerktechnik • High-Speed-Internet • Arbeiten im Heimnetz Rating: 0 out of 5 stars0 ratingsDas große inoffizielle FRITZ!Box Handbuch: Mobile Geräte einbinden: iPhone, iPad, Android Rating: 0 out of 5 stars0 ratingsMach's einfach: Erste Schritte mit der Smart-Home-Programmierung: Einstieg in die Hausautomation mit Node-RED Rating: 0 out of 5 stars0 ratingsErste Schritte: Eigene IoT-Lösungen mit dem ESP32: Mikrocontroller, Internet und PC Rating: 0 out of 5 stars0 ratingsHeimnetzwerke XL-Edition: DSL/WLAN/PC/Handy/Drucker & Co. Rating: 0 out of 5 stars0 ratingsAdministrator Praxis - Kleine Windows Netzwerke Rating: 0 out of 5 stars0 ratingsMQTT im IoT: Einstieg in die M2M-Kommunikation Rating: 0 out of 5 stars0 ratingsHeim-Netzwerke Tipps & Tools: Netzwerkverbindungen • Zentraler Datenspeicher • Mediastreaming Rating: 0 out of 5 stars0 ratingsopenHAB: Automatisiertes Heim - Teil 1 Rating: 4 out of 5 stars4/5openHAB: Automatisiertes Heim - Teil 2 Rating: 4 out of 5 stars4/5FRITZ!Box: Konfigurieren - Tunen - Absichern Rating: 0 out of 5 stars0 ratingsAuslaufmodell Mensch?: Mythos und Wirklichkeit der Künstlichen Intelligenz Rating: 0 out of 5 stars0 ratings
Reviews for Die Serverwelt von Node.js
0 ratings0 reviews
Book preview
Die Serverwelt von Node.js - Manuel Rauber
GmbH
1 JavaScript als alternative Möglichkeit der Backend-Entwicklung
Mit dem Wort JavaScript verbinden viele Entwickler die typische jQuery-Syntax $(...) und immer noch Spaghetticode. Der war früher an der Tagesordnung, und am Ende des Arbeitstags hatte man eine Sache gewiss: große, nicht überschaubare Dateien mit vielen Zeilen Code. Gut, dass das für unseren JavaScript-Interpreter im Browser keine Rolle spielt. Aber wie sieht das auf dem Server aus? Seit Node.js ist JavaScript auch auf dem Server nutzbar, sodass moderne Applikationen wie Web-APIs mit Datenbankzugriff und Token Authentication entwickelt werden können. Das beste daran? Ohne Spaghetticode.
Seit Jahren wird JavaScript auf dem Client, sprich im Browser, eingesetzt. Erste, anfänglich kleine Schritte, wurden meist mit dem Aus- oder Einblenden von Elementen auf einer Webseite gemacht. Hatte sich dieses Wissen gefestigt, ging man dazu über, mit Asynchronous JavaScript and XML (Ajax) dynamisch Webseiten zu entwickeln und Daten on the fly nachzuladen, anstatt die Webseite erneut über einen Server auszuliefern. Heutzutage werden Enterprise-Business-Anwendungen als Single Page Applications (SPA) mit modernen Frameworks wie Angular 2 oder React entwickelt, die vollständig auf dem Client ablaufen und nur noch benötigte Daten über eine leichtgewichtige und Use-Case-optimierte HTTPS-Schnittstelle nachladen.
Als .NET-Entwickler hat man beim Stichwort HTTPS-Schnittstelle sicher moderne Technologien wie ASP.NET Web API oder ASP.NET Core 1.0 MVC vor Augen – grundsolide und erprobte Technologien, die seit Jahren im Einsatz sind oder es sein werden. Mit C# oder wahlweise VB.NET werden Server entwickelt, die eine HTTPS-basierte Schnittstelle bereitstellen, die von einem JavaScript-Client oder beliebigen anderen Clienttechnologien konsumiert werden können. Wenn Sie bisher in der Rolle des JavaScript-Entwicklers waren, sind Sie bestens für die Entwicklung auf der Clientseite gerüstet. Doch wenn Sie in Richtung Server blicken, haben Sie sicher bemerkt, dass Sie sich in andere Technologien einarbeiten müssen, bisher jedenfalls.
Serverseitiges JavaScript
Mit Node.js [1] kann JavaScript nun auch auf der Serverseite ausgeführt werden. Node.js ist eine JavaScript-Runtime, die auf Google Chromes V8 JavaScript Engine (V8) aufbaut. Das bedeutet, dass alles auf der Serverseite genutzt werden kann, was der Browser Chrome an JavaScript versteht. Da Node.js eine Cross-Plattform-Anwendung ist, kann es auf Windows, Linux und Mac OS X genutzt werden. Durch die stetige Weiterentwicklung von Node.js wird auch immer wieder eine aktuelle Version von V8 integriert.
Zum Redaktionsschluss waren die Versionen 4.4.0 und 5.8.0 die jeweils aktuellsten von Node.js. Gerade Major-Versionsnummern bezeichnen eine Long-Term-Support-(LTS-)Version von Node.js, während eine ungerade Major-Versionsnummer die jeweils aktuellste stabile Entwicklungsversion darstellt. In LTS-Versionen werden keine neuen Features integriert, aber Bug Fixes und Sicherheitsupdates eingespielt. Sie richten sich damit speziell an Unternehmen, die eine auf längere Zeit stabile Version von Node.js im Produktionsumfeld benötigen. Node.js 4.4.0 integriert dabei V8 in Version 4.5 (was auch Chrome 45 entspricht), während Node.js 5.9.0 die Version 4.6 integriert.
Seitens Microsoft gibt es die Bestrebung, ChakraCore als alternative Runtime in Node.js zur Verfügung zu stellen. ChakraCore ist die Microsoft-eigene JavaScript-Engine, die für den neuen Browser Edge entwickelt wurde.
Im Jahr 2015 wurde die Node.js Foundation gegründet, die es sich unter anderem zur Aufgabe gemacht hat, die Weiterentwicklung von Node.js voranzutreiben. Als Mitglieder gehören ihr zum Beispiel Microsoft, PayPal oder Intel an. Ähnlich wie die Apache Foundation nimmt die Node.js Foundation Communityprojekte auf, um deren Weiterentwicklung zu stärken.
Event Loop
Die Stärken von Node.js liegen in einem asynchronen, eventbasierten I/O-API, also der Anbindung von externen Ressourcen. Dazu zählen Ressourcen wie das Dateisystem, Netzwerke oder Datenbanken. Dafür stellt Node.js eine Single-threaded-Architektur zur Verfügung. Das bedeutet, dass zu jedem Zeitpunkt innerhalb einer Node.js-Anwendung nur ein Thread zur Bearbeitung zur Verfügung steht. Diese Architektur wurde bewusst gewählt, da Multi-Threading einen besonderen Anspruch an die Anwendungsentwickler stellt. In einer Multi-threaded-Umgebung müssen wir uns speziell um die Threadsicherheit, also den koordinierten Zugriff auf eine Ressource mit parallelen Threads, kümmern. Auch die Fehlersuche wird in solch einer Umgebung erschwert. Der Architekturansatz von Node.js hilft uns dabei, dass wir uns um solche Themen keine Gedanken machen müssen.
Abbildung 1.1: Node.js Event Loop (frei nach einer Illustration von Ilya Petrov [2])
Um das erwähnte asynchrone I/O-API zur Verfügung zu stellen, bildet der Event Loop von Node.js das Herzstück (Abbildung 1.1).