Zum Inhalt springen

„Express.js“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Logo
Archivlink überprüft, Weblink aktualisiert (https)
 
(23 dazwischenliegende Versionen von 16 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{QS-Antrag|3. Juni 2015| [[WP:Wikifizieren]]: [[Wikipedia:Kategorien|Kategorien]] fehlen, [[Wikipedia:WikiProjekt Verwaiste Seiten|verwaist]] -- [[Benutzer:MerlBot/AutoQS|MerlBot]] 02:03, 3. Jun. 2015 (CEST)}}
{{Infobox Software
{{Infobox Software
| Name = Express.js
|Name = <!-- Nur falls abweichend vom Artikelnamen -->
| Logo = [[Datei:Expressjs.png|280px]]
|Logo = [[Datei:Expressjs.png|280px]]
| logo size = 200px
|Screenshot = <!-- Bildschirmfoto -->
| caption =
|Beschreibung = <!-- Beschreibung des Bildschirmfotos -->
| collapsible =
|Maintainer =
| Hersteller = [https://github.com/strongloop/express/ Douglas Christopher Wilson and community]
|Hersteller = [https://github.com/strongloop/express/ Douglas Christopher Wilson and community]
| status = Active
|Erscheinungsjahr =
| released =
|AktuelleVersion =
|AktuelleVersionFreigabeDatum =
| latest release version =
|AktuelleVorabVersion =
| latest release date =
|AktuelleVorabVersionFreigabeDatum =
| Betriebssystem = [[Cross-platform]]
|Betriebssystem = [[plattformübergreifend]]
| platform = Node.js
|Programmiersprache = [[JavaScript]]
| language =
|Kategorie = [[Webframework]]
| Programmiersprache = [[JavaScript]]
| Lizenz = [[MIT License]]
|Lizenz =
| genre = [[Web application framework]]
|Deutsch =
| Website = [http://expressjs.com/ expressjs.com]
|Website = [https://expressjs.com/ expressjs.com]
}}
}}

'''Express.js''' ist ein [[Client-Server-Modell|serverseitiges]] [[Web Application Framework]] für die [[JavaScript]]-basierte Plattform [[Node.js]]. Es erweitert Node.js um Werkzeuge, mit denen das Entwickeln moderner [[Webanwendung]]en einfacher gestaltet wird.<ref>[http://www.manning.com/hahn/ Evan Hahn: ''Express.js in Action'']</ref>
'''Express.js''' ist ein [[Client-Server-Modell|serverseitiges]] [[Webframework]] für die [[JavaScript]]-basierte Plattform [[Node.js]]. Es erweitert Node.js um Werkzeuge, mit denen das Entwickeln moderner [[Webanwendung]]en einfacher gestaltet wird.<ref name="Hahn">[http://www.manning.com/hahn/ Evan Hahn: ''Express.js in Action'']</ref>


== Architektur ==
== Architektur ==
Eine Express.js-Anwendung besteht zumindest aus der [[Datei]] ''app.js'', in welcher [[Middleware]] und Controller registriert und der [[Webserver]] gestartet wird.<ref>[http://hsr-ba-ajw-2013.github.io/BA-Dokumentation/thesis.pdf Alabor Manuel, Joly Alexandre und Weibel Michael: ''Architekturkonzepte moderner web-applikationen'']</ref>
Eine Express.js-Anwendung besteht zumindest aus der [[Datei]] ''app.js'', in welcher [[Middleware]] und [[Model View Controller|Controller]] registriert und der [[Webserver]] gestartet wird.<ref name="thesis.pdf">[http://hsr-ba-ajw-2013.github.io/BA-Dokumentation/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">[http://expressjs.com/guide/routing.html ''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 [[Middleware|neutrales Programm]].


Ein Requesthandler akzeptiert dabei drei Parameter:
Einer Client Anfrage ([[HTTP-Request]]) können im Router eine oder mehrere ''Requesthandler'' zugewiesen werden. Werden einer Anfrage mehrere ''Requesthandler'' zugewiesen, werden diese nacheinander ausgeführt. Jede dieser ''Requesthandler'' ist ein für sich genommen [[Middleware|neutrales Programm]]. Für die Zuweisung zwischen Anfrage und ''Requesthandler'' stellt Express.js Weiterleitungs-Werkzeuge zur Verfügung.<ref>[http://expressjs.com/guide/routing.html ''Express routing'']. Website von Express.js. Abgerufen am 2. Juni 2015</ref>
* das Anfrageobjekt
Ein ''Requesthandler'' akzeptiert dabei drei Parameter; das Anfrageobjekt, das Antwortobjekt und der nächste unter dieser Anfrage abzuarbeitende ''Requesthandler''. Durch diese modulare Architektur lassen sich leicht Prozesse, welche oft ausgeführt werden müssen, wie zum Beispiel Authentifizierungslogiken, vor Abhandlung eines Prozess einschieben.<ref>[http://hsr-ba-ajw-2013.github.io/BA-Dokumentation/thesis.pdf Alabor Manuel, Joly Alexandre und Weibel Michael: ''Architekturkonzepte moderner web-applikationen'']</ref>
* das Antwortobjekt
* den nächsten unter dieser Anfrage abzuarbeitenden ''Requesthandler''.
Durch diese [[Software-Modul|modulare Architektur]] lassen sich Prozesse, welche oft ausgeführt werden müssen, z.&nbsp;B. [[Authentifizierung]]s<nowiki/>logiken, 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, [[AngularJS|Angular.js]] und [[Node.js]].<ref>[http://www.manning.com/hahn/ Evan Hahn: ''Express.js in Action'']</ref>
Um JavaScript-[[Konvention]]en 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, [[AngularJS|Angular.js]] und [[Node.js]].<ref name="Hahn" />


== Beispiele ==
== Beispiele ==
=== app.js ===
=== app.js ===
Dieser Code startet einen Webserver, der auf Port 3000 hört.
Dieser Code startet den Server<ref>[http://expressjs.com/starter/hello-world.html ''Express „Hello World“ Example'']. Website von Express.js. Abgerufen am 2. Juni 2015.</ref>. Er verwendet den Port 3000.
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
var express = require('express');
const express = require('express')
var app = express();
const app = express()
var server = app.listen(3000, function () {
const server = app.listen(3000, function () {
var host = server.address().address;
const host = server.address().address
var port = server.address().port;
const port = server.address().port
console.log('Example app listening at http://%s:%s', host, port);
console.info(`Example app listening at http://${host}:${port}`)
});
})
</syntaxhighlight>
</syntaxhighlight>


=== router.js ===
=== router.js ===
Dieser Code weist der Anfrage <code>‘/’</code> einen ''Requesthandler'' zu<ref>[http://expressjs.com/guide/routing.html ''Express routing'']. Website von Express.js. Abgerufen am 2. Juni 2015.</ref>.
Dieser Code weist der Anfrage <code>‘/’</code> einen ''Requesthandler'' zu.<ref name="routing" />
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
var express = require('express');
const express = require('express')
var app = express(); // respond with "hello world" when a GET request is made to the homepage
const app = express() // Respond with "Hello World" when a GET request is made to the homepage
app.get('/', function(req, res) {
app.get('/', function (request, response) {
res.send('hello world');
response.send('Hello World')
});
})
</syntaxhighlight>
</syntaxhighlight>


=== Middlewares ===
=== Middlewares ===
Es gibt viele Möglichkeiten Middlewares in Express.js zu nutzen. Eine ist, mehrere ''Requesthandler'' an eine Client Anfrage zu binden<ref>[http://expressjs.com/guide/using-middleware.html ''Using Express middlewares'']. Website von Express.js. Abgerufen am 2. Juni 2015.</ref>. Dieser Code zeigt, wie eine Authentifizierungslogik, vor dem vom Client geforderten Prozess, eingeschoben wird.
Es gibt viele Möglichkeiten Middlewares in Express.js zu nutzen. Eine ist, mehrere ''Requesthandler'' an eine Client-Anfrage zu binden.<ref>[http://expressjs.com/guide/using-middleware.html ''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">
<syntaxhighlight lang="javascript">
app.get('/adminArea', authentication(req, res, next), showAdminArea(req, res));
app.get('/adminArea', authentication(request, response, next), showAdminArea(request, response))
</syntaxhighlight>
</syntaxhighlight>


== Projekte ==
== Projekte<ref>[http://expressjs.com/resources/applications.html ''Express Applications'']. Website von Express.js. Abgerufen am 2. Juni 2015.</ref> ==
Projekte, die mit Express realisiert wurden:<ref>expressjs.com: {{Webarchiv|text=''Express Applications'' |url=http://expressjs.com/resources/applications.html |wayback=20150508210036 }} (englisch)</ref>
* [[MySpace]]
* [[Myspace]]
* LearnBoost
* LearnBoost
* [[Storify]]
* [[Storify]]
Zeile 81: Zeile 89:


== Literatur ==
== Literatur ==
* [http://hsr-ba-ajw-2013.github.io/BA-Dokumentation/thesis.pdf Bachelorarbeit: ''Architekturkonzepte moderner Web-Applikationen''] (PDF, 9 MB)
* [https://www.packtpub.com/web-development/mastering-web-application-development-express ''Mastering Web Application Development with Express''] ISBN 9781783981083
* [https://www.packtpub.com/web-development/mastering-web-application-development-express ''Mastering Web Application Development with Express''] ISBN 9781783981083
* [http://www.manning.com/hahn/ ''Manning: Express.js in Action''] ISBN 9781617292422
* [http://www.manning.com/hahn/ ''Manning: Express.js in Action''] ISBN 9781617292422
Zeile 89: Zeile 96:
== Weblinks ==
== Weblinks ==


* [http://expressjs.com/ Offizielle Website]
* [https://expressjs.com/ Offizielle Website] ({{enS}})


== Einzelnachweise ==
== Einzelnachweise ==
Zeile 96: Zeile 103:
[[Kategorie:Freies Webframework]]
[[Kategorie:Freies Webframework]]
[[Kategorie:Node.js]]
[[Kategorie:Node.js]]
[[Kategorie:JavaScript-Bibliothek]]

Aktuelle Version vom 22. April 2025, 13:42 Uhr

Express.js

Basisdaten

Entwickler Douglas Christopher Wilson and community
Erscheinungsjahr 16. November 2010
Aktuelle Version 5.1.0[1]
(31. März 2025)
Aktuelle Vorabversion 5.0.0-beta.1[2][3]
(15. Februar 2022)
Betriebssystem plattformübergreifend
Programmier­sprache JavaScript
Kategorie Webframework
Lizenz MIT-Lizenz[4]
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.[5]

Eine Express.js-Anwendung besteht zumindest aus der Datei app.js, in welcher Middleware und Controller registriert und der Webserver gestartet wird.[6]

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.[7]

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.[6]

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.[5]

Dieser Code startet einen Webserver, der auf Port 3000 hört.

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}`)
})

Dieser Code weist der Anfrage ‘/’ einen Requesthandler zu.[7]

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')
})

Es gibt viele Möglichkeiten Middlewares in Express.js zu nutzen. Eine ist, mehrere Requesthandler an eine Client-Anfrage zu binden.[8] Dieser Code zeigt, wie eine Authentifizierungslogik vor den vom Client geforderten Prozess eingeschoben wird.

app.get('/adminArea', authentication(request, response, next), showAdminArea(request, response))

Projekte, die mit Express realisiert wurden:[9]

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

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Release 5.1.0. 31. März 2025 (abgerufen am 10. April 2025).
  2. github.com.
  3. registry.npmjs.com. In: npmjs. (abgerufen am 3. März 2023).
  4. github.com.
  5. a b Evan Hahn: Express.js in Action
  6. a b Alabor Manuel, Joly Alexandre und Weibel Michael: Architekturkonzepte moderner web-applikationen
  7. a b Express routing. Website von Express.js. Abgerufen am 2. Juni 2015
  8. Using Express middlewares. Website von Express.js. Abgerufen am 2. Juni 2015.
  9. expressjs.com: Express Applications (Memento vom 8. Mai 2015 im Internet Archive) (englisch)