Wie wird man den Connect 3.0 Deprecation Alert los?

Lesezeit: 4 Minuten

Benutzer-Avatar
Amet Alvirde

Ich bin ein node.js-Entwickler, der Web-Apps mit express.js erstellt. Mittlerweile ist mein Problem:

Immer wenn ich eine App auf meinem Computer erstelle, npm ihre Sachen installiere und ausführe (mit node app.js und nodemon), erhalte ich diese Meldung in der Konsole:

connect.multipart() will be removed in connect 3.0
visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives
connect.limit() will be removed in connect 3.0
Express server listening on port 3000

Die App funktioniert, das ist in Ordnung. Aber wenn ich eine App klonen, die auf einem anderen Computer erstellt wurde, erhalte ich diese Meldung nicht, also nehme ich an, dass ich etwas veraltetes in meinem Computer habe.

Ich ging zu der in der Nachricht erwähnten Seite und bestätigte meine Spekulationen. Das ist eine Abwertungswarnung. Ich habe jedoch node und npm und global express aktualisiert, aber ich bekomme immer noch die Notiz.

Mein Problem ist daher: Ich weiß nicht, was ich aktualisieren muss, um die Abwertungshinweise loszuwerden, weil sie mich ausflippen lassen.

Ich hoffe jemand kann mir helfen. Danke vielmals.

Dies ist eine Warnung, die verschwindet, sobald Express auf die Verwendung von Connect 3.0 aktualisiert wird. Befolgen Sie als vorübergehende Lösung die Anweisungen oben in https://github.com/senchalabs/connect/wiki/Connect-3.0. Suchen Sie insbesondere diese Zeile in Ihrer App:

app.use(express.bodyParser());

Und ersetzen Sie es durch Folgendes (das ist was bodyParser wird in 3.0 sein):

app.use(express.json());
app.use(express.urlencoded());

  • weitere Informationen zum Thema connect 3.0 hier: groups.google.com/d/msg/express-js/iP2VyhkypHo/5AXQiYN3RPcJ

    – fernandopasik

    7. November 2013 um 10:15 Uhr

  • Ich musste auch hinzufügen app.use(express.multipart()) weil meine mehrteiligen Formulare (natürlich) nicht mehr funktionierten, was auch die Verfallswarnung (natürlich) zurückbrachte.

    – ein bezahlter Nerd

    22. November 2013 um 3:08 Uhr

  • Verwenden Sie einen der im Wiki aufgeführten mehrteiligen Parser. benutze nicht connect/express’

    – Jonathan Ong

    16. Dezember 2013 um 11:30 Uhr

  • DANKEN! SIE! Ich war kurz davor, verrückt zu werden

    – Markus Hammarberg

    12. Februar 2014 um 16:18 Uhr

Benutzer-Avatar
Jonathan Ong

Ich bin verantwortlich für diese Abwertungsmitteilung. hast du das Wiki gelesen? https://github.com/senchalabs/connect/wiki/Connect-3.0

Schritt 1: Verwenden Sie jeden Parser direkt statt app.use(express.bodyParser());

app.use(express.json());
app.use(express.urlencoded());

Schritt 2: Verwenden Sie einen anderen Multipart-Parser, z. B.: connect-multiparty kann verwendet werden

app.use(require('connect-multiparty')())

Die Arbeit an Connect 3 und Express 4 hat noch nicht begonnen, da Node 0.12 eine Weile braucht, um veröffentlicht zu werden. Es gibt noch nichts zu aktualisieren.

  • Es handelt sich nicht um einen Verfallshinweis, sondern um eine bahnbrechende Änderung. app.use(express.bodyParser) funktioniert nicht mehr mit der neuesten Version, aber die Hauptversionsnummern haben sich für die Bibliotheken nicht geändert, was das Konzept von semver bricht.

    – tkone

    23. Dezember 2013 um 16:22 Uhr

  • läuft die neuste Version ab npm install expressund tun eine sehr einfache: var express = require('express'), app = express(); app.use(express.bodyParser); app.get('/', function(req,res){ res.send(200, 'ok');}); app.listen(3000);. Eine Anfrage stellen an http://localhost:3000/ hängt Curl & Browser und gibt eine Warnung aus. Entfernen app.use(express.bodyParser) oder zu wechseln app.use(express.json()) bewirkt, dass die App „ok“ mit dem HTTP-Status 200 zurückgibt.

    – tkone

    23. Dezember 2013 um 20:50 Uhr

  • Es ist Connect-Multiparty statt Connect-Multipart

    – Vince Yuan

    11. März 2014 um 16:39 Uhr

  • Ich wünschte, es gäbe eine Option, diese Warnung zu unterdrücken; Während veraltete Hinweise wichtig sind, ist es in der Unternehmensumgebung sehr selten, dass es KEINE Option gibt, sie zu unterdrücken. In meiner aktuellen Situation bin ich nicht in der Lage, die notwendigen Änderungen vorzunehmen, um die Nachricht mindestens 6 Monate lang zu vermeiden, aber eine Konfigurationsoption, die ich könnte, aber jetzt haben wir diese in unseren Protokollen in einem anderen Format als alles andere verstreut, was unsere älteren Protokollparser nicht sehr glücklich macht . Nur ein Denkanstoß; Veraltungshinweise sind wichtig, aber Entwickler brauchen einen Weg, sie bei Bedarf aus dem Weg zu räumen.

    – Kris

    22. März 2014 um 7:26 Uhr

  • @Kris Wenn Sie die json- und urlencodierte Middleware nicht direkt verwenden können (vermutlich, da Sie die mehrteilige Unterstützung zum Verarbeiten von Datei-Uploads verwenden), können Sie sie vorübergehend überschreiben console.log während der bodyParser instanziiert wird, bringen Sie ihn dann zurück. Ich habe diesen Ansatz eine Zeit lang in Sails verwendet, um unsere Protokollausgabe zu normalisieren

    – Mikermcneil

    9. Mai 2014 um 1:34 Uhr

Da Express nur ein Wrapper zum Verbinden ist, schlage ich vor, Connect direkt zu verwenden.

also statt:
app.use(express.bodyParser());

verwenden:

connect = require('connect');
app.use(connect.json());
app.use(connect.urlencoded());

1090980cookie-checkWie wird man den Connect 3.0 Deprecation Alert los?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy