BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Express 4.0 : Modularisation et Nouveau Routeur

Express 4.0 : Modularisation et Nouveau Routeur

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".

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT