Diese ├ťbersetzung zur Verf├╝gung gestellt von StrongLoop / IBM.

Dieses Dokument kann im Vergleich zur englischen Dokumentation veraltet sein. Aktuelle Updates finden Sie in der englischen Dokumentation.

Ôťľ

Wechsel zu Express 5

├ťberblick

Express 5.0 befindet sich noch in der Alpha-Release-Phase. Hier finden Sie jedoch bereits eine Vorschau zu den Änderungen in diesem Release und zur Migration Ihrer Express 4-Anwendung auf Express 5.

Express 5 unterscheidet sich nicht allzu sehr von Express 4: Die ├änderungen an der API sind nicht so signifikant wie von 3.0 zu 4.0. Auch wenn die Basis-API unver├Ąndert bleibt, wird es doch einige grundlegende Ver├Ąnderungen geben. In anderen Worten: Ein vorhandenes Express 4-Programm funktioniert m├Âglicherweise nicht mehr, wenn Sie es f├╝r Express 5 aktualisieren.

Zum Installieren der aktuellen Alpha-Version und zur Vorschau von Express 5 geben Sie den folgenden Befehl im Stammverzeichnis Ihrer Anwendung ein:


$ npm install express@5.0.0-alpha.2 --save

Sie k├Ânnen Ihre automatisierten Tests ausf├╝hren, um zu sehen, was fehlschl├Ągt, und Probleme gem├Ą├č den folgenden Updates beheben. Nachdem Sie alle Testfehler behoben haben, f├╝hren Sie Ihre Anwendung aus, um zu sehen, welche Fehler noch auftreten. Sie werden sofort feststellen, ob die Anwendung Methoden oder Eigenschaften verwendet, die nicht unterst├╝tzt werden.

Änderungen in Express 5

Nachfolgend finden Sie eine Liste mit Änderungen (Stand: Alpha-2-Release), die sich auf Sie als Express-Benutzer auswirken werden. Siehe hierzu auch die Pull-Anforderung mit einer Liste aller geplanten Features und Funktionen.

Entfernte Methoden und Eigenschaften

Ge├Ąndert

Verbesserungen

Entfernte Methoden und Eigenschaften

Wenn Sie eine dieser Methoden oder Eigenschaften in Ihrer Anwendung verwenden, st├╝rzt die Anwendung ab. Sie m├╝ssen also Ihre Anwendung ├Ąndern, wenn Sie auf Version 5 umgestellt haben.

app.del()

Express 5 unterst├╝tzt die Funktion app.del() nicht mehr. Wenn Sie diese Funktion verwenden, wird ein Fehler ausgel├Âst. F├╝r die Registrierung von HTTP DELETE-Weiterleitungen verwenden Sie stattdessen die Funktion app.delete().

Anf├Ąnglich wurde del statt delete verwendet, weil delete in JavaScript ein reserviertes Schl├╝sselwort ist. Ab ECMAScript 6 jedoch k├Ânnen delete und andere reservierte Schl├╝sselw├Ârter legal als Eigenschaftsnamen verwendet werden. Lesen hier auch die Diskussion, die zur Einstellung der Unterst├╝tzung der Funktion app.del gef├╝hrt hat.

app.param(fn)

Die Signatur app.param(fn) wurde für die Änderung der Verhaltensweise der Funktion app.param(name, fn) verwendet. Seit v4.11.0 wurde sie nicht mehr verwendet. In Express 5 wird sie überhaupt nicht mehr unterstützt.

Pluralisierte Methodennamen

Die folgenden Methodennamen wurden pluralisiert. In Express 4 wurde bei Verwendung der alten Methoden eine Warnung zur Einstellung der Unterst├╝tzung ausgegeben. Express 5 unterst├╝tzt diese Methoden nicht mehr.

req.acceptsCharset() wird durch req.acceptsCharsets() ersetzt.

req.acceptsEncoding() wird durch req.acceptsEncodings() ersetzt.

req.acceptsLanguage() wird durch req.acceptsLanguages() ersetzt.

F├╝hrender Doppelpunkt (:) im Namen f├╝r app.param(name, fn)

Ein f├╝hrendes Doppelpunktzeichen (:) im Namen f├╝r die Funktion app.param(name, fn) ist ein ├ťberbleibsel aus Express 3. Aus Gr├╝nden der Abw├Ąrtskompatibilit├Ąt wurde dieser Name in Express 4 mit einem Hinweis zu veralteten Versionen weiter unterst├╝tzt. In Express 5 wird dieser Name stillschwiegend ignoriert und der Namensparameter ohne einen vorangestellten Doppelpunkt verwendet.

Dies d├╝rfte keine Auswirkungen auf Ihren Code haben, wenn Sie die Express 4-Dokumentation zu app.param befolgen, da dort der f├╝hrende Doppelpunkt nicht erw├Ąhnt wird.

req.param(name)

Dieses potenziell verwirrende und durchaus riskante Verfahren des Abrufens von Formulardaten wurde entfernt. Sie m├╝ssen nun ganz speziell nach dem ├╝bergebenen Parameternamen im Objekt req.params, req.body oder req.query suchen.

res.json(obj, status)

Express 5 unterst├╝tzt die Signatur res.json(obj, status) nicht mehr. Stattdessen m├╝ssen Sie den Status festlegen und diesen dann mit res.json()-Methoden wie dieser verketten: res.status(status).json(obj).

res.jsonp(obj, status)

Express 5 unterst├╝tzt die Signatur res.jsonp(obj, status) nicht mehr. Stattdessen m├╝ssen Sie den Status festlegen und diesen dann mit res.jsonp()-Methoden wie dieser verketten: res.status(status).jsonp(obj).

res.send(body, status)

Express 5 unterst├╝tzt die Signatur res.send(obj, status) nicht mehr. Stattdessen m├╝ssen Sie den Status festlegen und diesen dann mit res.send()-Methoden wie dieser verketten: res.status(status).send(obj).

res.send(status)

Express 5 unterst├╝tzt die Signatur res.send(status), nicht mehr, wobei status f├╝r eine Zahl steht. Verwenden Sie stattdessen die Funktion res.sendStatus(statusCode), mit der der Statuscode f├╝r den HTTP-Antwort-Header festgelegt und die Textversion des Codes gesendet wird: ÔÇťNot FoundÔÇŁ (Nicht gefunden), ÔÇťInternal Server ErrorÔÇŁ (Interner Serverfehler) usw. Wenn Sie eine Zahl senden und hierf├╝r die Funktion res.send() verwenden m├╝ssen, m├╝ssen Sie die Zahl in Anf├╝hrungszeichen setzen, um diese in eine Zeichenfolge zu konvertieren. Dadurch interpretiert Express diese Zahl nicht als Versuch, die nicht mehr unterst├╝tzte alte Signatur zu verwenden.

res.sendfile()

Die Funktion res.sendfile() wurde durch eine Version in Camel-Schreibweise von res.sendFile() in Express 5 ersetzt.

Ge├Ąndert

app.router

Das Objekt app.router, das in Express 4 entfernt wurde, ist in Express 5 wieder verf├╝gbar. In der neuen Version fungiert dieses Objekt nur als Referenz zum Express-Basisrouter ÔÇô im Gegensatz zu Express 3, wo die Anwendung dieses Objekt explizit laden musste.

req.host

In Express 4 ├╝bergab die Funktion req.host nicht ordnungsgem├Ą├č eine eventuell vorhandene Portnummer. In Express 5 wird die Portnummer beibehalten.

req.query

In Express 4.7 und ab Express 5 kann die Abfrageparser-Option false akzeptieren, um das Parsing von Abfragezeichenfolgen zu deaktivieren, wenn Sie Ihre eigene Funktion f├╝r die Parsinglogik bei Abfragezeichenfolgen verwenden wollen.

Verbesserungen

res.render()

Diese Methode erzwingt nun asynchrones Verhalten f├╝r alle View-Engines, sodass durch View-Engines mit synchroner Implementierung verursachte Fehler vermieden werden, durch die die empfohlene Schnittstelle nicht verwendet werden konnte.