Zum Inhalt springen

Express.js

aus Wikipedia, der freien Enzyklopädie
Express.js

colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | Datei:Expressjs.png
Basisdaten

Maintainer Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
Entwickler Douglas Christopher Wilson and community
Erscheinungsjahr Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
Aktuelle Version Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value))
Aktuelle Vorabversion Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
(Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value))
Betriebssystem plattformübergreifend
Programmier­sprache JavaScript
Kategorie Webframework
Lizenz Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)
expressjs.com

Express.js ist ein serverseitiges Webframework für die JavaScript-basierte Plattform Node.js. Es erweitert Node.js um Werkzeuge, mit denen das Entwickeln moderner Webanwendungen einfacher gestaltet wird.<ref name="Hahn">Evan Hahn: Express.js in Action</ref>

Architektur[Bearbeiten]

Eine Express.js-Anwendung besteht zumindest aus der Datei app.js, in welcher Middleware und Controller registriert und der Webserver gestartet wird.<ref name="thesis.pdf">Alabor Manuel, Joly Alexandre und Weibel Michael: Architekturkonzepte moderner web-applikationen</ref>

Einer Client-Anfrage (HTTP-Request) können im Router eine oder mehrere Requesthandler zugewiesen werden. Für die Zuweisung zwischen Anfrage und Requesthandler stellt Express.js Weiterleitungs-Werkzeuge zur Verfügung.<ref name="routing">Express routing. Website von Express.js. Abgerufen am 2. Juni 2015</ref>

Werden einer Anfrage mehrere Requesthandler zugewiesen, so werden diese nacheinander ausgeführt; jeder dieser Requesthandler ist ein für sich genommen neutrales Programm.

Ein Requesthandler akzeptiert dabei drei Parameter:

  • das Anfrageobjekt
  • das Antwortobjekt
  • den nächsten unter dieser Anfrage abzuarbeitenden Requesthandler.

Durch diese modulare Architektur lassen sich Prozesse, welche oft ausgeführt werden müssen, z. B. Authentifizierungslogiken, vor Abhandlung eines Prozesses einschieben.<ref name="thesis.pdf" />

Um JavaScript-Konventionen fortzusetzen, wird Express.js oft in Kombination mit NoSQL-Datenbanken wie MongoDB verwendet. Eine etablierte Kombination von Technologien, in welcher Express.js eingesetzt wird, nennt sich MEAN und steht für MongoDB, Express.js, Angular.js und Node.js.<ref name="Hahn" />

Beispiele[Bearbeiten]

app.js[Bearbeiten]

Dieser Code startet einen Webserver, der auf Port 3000 hört. <syntaxhighlight lang="javascript"> const express = require('express') const app = express() const server = app.listen(3000, function () {

   const host = server.address().address
   const port = server.address().port
   console.info(`Example app listening at http://${host}:${port}`)

}) </syntaxhighlight>

router.js[Bearbeiten]

Dieser Code weist der Anfrage ‘/’ einen Requesthandler zu.<ref name="routing" /> <syntaxhighlight lang="javascript"> const express = require('express') const app = express() // Respond with "Hello World" when a GET request is made to the homepage app.get('/', function (request, response) {

   response.send('Hello World')

}) </syntaxhighlight>

Middlewares[Bearbeiten]

Es gibt viele Möglichkeiten Middlewares in Express.js zu nutzen. Eine ist, mehrere Requesthandler an eine Client-Anfrage zu binden.<ref>Using Express middlewares. Website von Express.js. Abgerufen am 2. Juni 2015.</ref> Dieser Code zeigt, wie eine Authentifizierungslogik vor den vom Client geforderten Prozess eingeschoben wird. <syntaxhighlight lang="javascript"> app.get('/adminArea', authentication(request, response, next), showAdminArea(request, response)) </syntaxhighlight>

Projekte[Bearbeiten]

Projekte, die mit Express realisiert wurden:<ref>expressjs.com: Die Seite Vorlage:Webarchiv/styles.css hat keinen Inhalt.Express Applications (Memento vom 8. Mai 2015 im Internet Archive) (englisch)</ref>

  • Myspace
  • LearnBoost
  • Storify
  • Geekli.st
  • Klout
  • Prismatic
  • StudyNotes
  • Persona
  • Countly
  • Segment.io
  • Yummly
  • Koding
  • Apiary.io
  • Cozy
  • FlyLatex
  • SimpleSet
  • Ghost
  • LogHuman
  • VogueVerve
  • Glip

Literatur[Bearbeiten]

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

<references />