web-dev-qa-db-fra.com

Comment se débarrasser de l'alerte de dépréciation de Connect 3.0?

Je suis un développeur node.js qui crée des applications Web en utilisant express.js. À ce jour, mon problème est:

Chaque fois que je crée une application sur mon ordinateur, npm installe ses fichiers et l'exécute (avec node app.js et nodemon), j'obtiens ce message dans la console:

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

L'application fonctionne, c'est bien. Mais lorsque je clone une application créée sur un autre ordinateur, je ne reçois pas ce message, donc je suppose que j'ai quelque chose de dépassé dans mon ordinateur.

Je suis allé sur le site mentionné dans le message et j'ai confirmé mes spéculations. C'est un avertissement de dépréciation. Cependant, j'ai mis à jour node et npm et globalement express mais je reçois toujours la note.

Mon problème est donc: je ne sais pas ce que je dois mettre à jour pour me débarrasser des notes de dépréciation parce qu'elles me font flipper.

J'espère que quelqu'un pourra m'aider. Merci beaucoup.

74
Alevardi

Il s'agit d'un avertissement qui disparaîtra une fois Express mis à jour pour utiliser Connect 3.0 - en tant que correctif temporaire, suivez les instructions en haut de https://github.com/senchalabs/connect/wiki/Connect-3. . Plus précisément, recherchez cette ligne dans votre application:

app.use(express.bodyParser());

Et remplacez-le par ce qui suit (c'est ce que bodyParser sera dans 3.0):

app.use(express.json());
app.use(express.urlencoded());
170
Jacob Gillespie

je suis responsable de cet avis de dépréciation. avez-vous lu le wiki? https://github.com/senchalabs/connect/wiki/Connect-3.

étape 1: utilisez chaque analyseur directement au lieu de app.use(express.bodyParser());

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

étape 2: utilisez un analyseur multipartie différent, par exemple: connect-multiparty peut être utilisé

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

le travail sur connect 3 et express 4 n'a pas encore commencé car le noeud 0.12 met du temps à être libéré. il n'y a encore rien à mettre à jour.

60
Jonathan Ong

comme express n'est qu'un wrapper pour se connecter, je suggère d'utiliser connect directement.

donc au lieu de: app.use(express.bodyParser());

utilisation:

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