BT
x Votre opinion compte ! Merci de bien vouloir répondre au sondage InfoQ concernant vos habitudes de lecture !

Express 4.0 : Modularisation et Nouveau Routeur

par James Chesters , traduit par Eric Bellemon le 12 mai 2014 |

Express.JS, le framework d'application web pour Node.js, est récemment sorti en version 4.0 avec des améliorations du routeur et la suppression des middlewares intégrés.

Un des ajouts de la version 4.0 est l'API publique pour le routeur. Un routeur est une sorte de micro-application Express qui ne contient pas de vues ou d'options mais fournit une API classique de routage (.use, .get, .param, .route).

Dans la note de version sur GitHub, le créateur d'Express, TJ Holowaychuk, explique que la nouvelle version "propose un meilleur Routeur et une API pour les routes afin de lutter contre de nombreux cas de duplication de noms de routes". Holowaychuk explique aussi que cette version rend plus simple la séparation des Routeurs en de multiples fichiers pour faciliter l'organisation des projets.

InfoQ a contacté un des contirbuteurs, Roman Shtylman, qui dit : "Nous espérons que le routeur va permettre à plus d'utilisateurs de modulariser les routes et les applications. En exposant le Router dans Express, nous accentuons la facilité avec laquelle les développeurs pourront séparer la logique de route dans des fichiers et créer des routes réutilisables sans avoir à instantier de nouvelles applications".

Ces routeurs héritent des options et du moteur de rendu de l'application avec laquelle ils sont utilisés. Avec cette technique, l'équipe d'Express espère améliorer la création d'applications plus maintenables.

Une autre nouveauté est l'ajout d'une nouvelle API pour les routes afin d'éviter la duplication de noms de routes pour plusieurs verbes HTTP. Selon Shtylman, cette nouveauté est là pour aider à éviter les typos.

Un autre changement dans la 4.0 est l'introduction des middlewares packagés. La nouvelle version ne dépend plus de Connect. Tous les middlewares inclus auparavant sont maintenant dans des repos séparés.

Auparavant, des corrections de légers bugs dans l'une des environ deux douzaines de middlewares pour Express signifiaient qu'une nouvelle version devait sortir. En conséquence, les mises à jour prenaient plus de temps, et des changements importants ont été abandonnés.

"En séparant tous les middlewares en modules, nous pouvons avoir plus de mainteneurs et aussi sortir des versions par modules. Cela va rendre plus faciles les mises à jour" selon Stylman.

Une liste complète des middlewares est disponible ici. L'unique middleware inclus est express.static().

L'utilisateur jacqued sur Hacker News pense que "les changements rendent Express plus propre qu'avant. Le nouveau système de routage permettant de gérer différents verbes avec des fonctions chaînées est astucieux".

"De plus, séparer les middlewares dans de multiples modules semble être la bonne direction à prendre et plus proche de la philosophie Node au lieu de tout mettre ensemble".

Irakli Janiashvili, développeur de jani.io, est aussi de cet avis : “J'aime beaucoup le nouveau routeur. Cela va me permettre de faire de meilleures applications avec Express”.

Un autre changement est l'élimination de l'erreur la plus classique avec Express en remplaçant app.us(app.router) par des méthodes de routages ajoutées dans l'ordre dans lesquelles elles apparaissent. De plus, au lieu d'utiliser app.get() et app.post() directement, une nouvelle méthode route() qui retourne une instance de Route peut être utilisé. On peut appeler tous les verbes HTTP sur cette instance.

À propos de la feuille de route d'Express, Shtylman dit que l'équipe n'a pour le moment pas de plan en particulier.

"Nous ne voulons pas que nos utilisateurs soient focalisés sur les versions "majeures". Nous pouvons avancer rapidement sur des changements s'ils rendent le coeur d'Express plus maintenable. Notre objectif est d'éviter de sortir des versions qui ne sont pas rétrocompatibles contrairement à d'autres projets. Nous voulons sortir plus fréquemment des modules et autoriser les utilisateurs à sélectionner les mises à jour dont ils ont besoin".

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Contenu Éducatif

Rien ne serait possible sans le soutien et la confiance de nos Sponsors Fondateurs:

AppDynamics   CloudBees   Microsoft   Zenika
Feedback Général
Bugs
Publicité
Éditorial
InfoQ.com et tous les contenus sont copyright © 2006-2014 C4Media Inc. InfoQ.com est hébergé chez Contegix, le meilleur ISP avec lequel nous ayons travaillé.
Politique de confidentialité
BT