Choisir un framework pour votre application NodeJS peut être difficile. Il y en a tellement, avec leurs propres forces et faiblesses. À la fin de la journée, le framework que vous choisissez dépendra de votre environnement de programmation et de ce que vous voulez que votre application fasse. Certains frameworks sont légers, rapides et ne se soucient pas de la façon dont vous créez votre application. D’autres ont plus de fonctionnalités mais peuvent vous obliger à utiliser leurs moteurs et à organiser votre code d’une certaine manière.
Le but de cet article est de comparer certains des frameworks de nœuds les plus populaires afin que vous puissiez finalement décider lequel convient à votre projet.
Qu’est-ce qu’un framework ?
De manière générale, un framework est un système de support pour votre application. Node fournit un ensemble d’outils pour s’interfacer avec les éléments dont votre application a besoin, comme le réseau et le système de fichiers. Un cadre étend ces capacités et élimine certains des aspects les plus compliqués du développement. Par exemple, un gestionnaire de votre code peut recevoir un objet de requête du réseau. Un framework pourrait intercepter cet objet de requête avant qu’il n’atteigne votre gestionnaire, ajoutant des méthodes et des capacités supplémentaires pour le rendre plus facile à utiliser.
Il existe plusieurs versions du framework Node, et chacune offre une expérience de programmation différente.
Frameworks MVC
L’architecture MVC (Model View Controller) est un modèle de conception utile qui divise la logique de l’application en trois parties : des modèles pour définir la forme des données, des vues pour organiser l’interface utilisateur et des contrôleurs pour communiquer entre les deux. Les frameworks de nœuds prenant en charge l’architecture MVC sont utiles si vous ne voulez pas passer trop de temps à vous soucier de l’organisation de votre code.
Express
Nous pouvons tout aussi bien sortir Express du chemin en premier, car aucune liste de frameworks de nœuds ne serait complète sans elle. Express est toujours le champion en titre des frameworks populaires, comme en témoigneront ses stars Github 47,5K, ses montres 1,8K et ses fourches 7,7K. Cela seul en fait un excellent choix. Il est robuste, bien testé, et une grande communauté le maintient et travaille avec lui qui peut vous soutenir et répondre aux questions.
Express se présente comme un « cadre minimaliste rapide, sans opinion pour Node. » L’accent est mis sur la performance et ne fournit que ce dont vous avez besoin. Le framework fournit peu de fonctionnalités propres, au lieu de permettre un chaînage de middleware étendu pour traiter les demandes.
Mise en route
Créez un serveur.js ou app.fichier js à la racine de votre projet et ajoutez le code suivant
const express = require('express')const app = express()app.get('/', function (req, res) { res.send('Hello World')})app.listen(3000)
Exécutez le serveur avec
node ./server.js
et visitez localhost: 3000 dans votre navigateur pour voir la réponse.
Voiles
Les voiles mettent l’accent sur la stabilité et la facilité d’utilisation et fournissent beaucoup plus de produits prêts à l’emploi que les voiles Express. Il s’appuie dans le sens de la pile complète, fournissant un support pour l’authentification, son propre ORM pour l’interface de base de données, les WebSockets et la création de modèles. Sails est plus opiniâtre qu’Express — ce qui signifie que vous devez utiliser l’ORM (ligne de flottaison) et le moteur de modélisation (EJS) fournis, bien qu’une extension appelée Consolidate prenne en charge d’autres moteurs de modélisation compatibles avec Express.) Sails dispose également d’un générateur d’API impressionnant appelé Blueprints, qui vous permet de générer des points de terminaison d’API avec un codage manuel minimal. De la documentation sur les Voiles:
… si vous créez un utilisateur.fichier de modèle js dans votre projet, puis avec les plans activés, vous pourrez immédiatement visiter /user/create?name=joe pour créer un utilisateur et visitez /user pour voir un tableau des utilisateurs de votre application. Le tout sans écrire une seule ligne de code !
Sails existe depuis longtemps et fait partie des cadres les plus populaires selon ses étoiles, vues et fourchettes Github. De nombreuses grandes entreprises s’appuient sur Sails, ce qui signifie qu’il est suffisamment robuste pour prendre en charge les applications au niveau de l’entreprise.
Mise en route
Sails fournit une interface de ligne de commande puissante pour démarrer très rapidement une nouvelle application
npm install -g sailssails new <project_name>
Vous serez invité à choisir soit un modèle d’application Web avec authentification et connexion intégrées, soit une application vide. Une fois que Sails a fini de configurer les bases, cd dans votre dossier de projet et exécutez
sails lift
Vous pouvez maintenant naviguer vers localhost: 1337 pour voir la page d’accueil générée.
Frameworks Full-Stack
Les frameworks Full-stack fournissent une structure et des fonctionnalités pour l’ensemble de votre application, du client au serveur en passant par la base de données. Un framework full-stack peut comporter de nombreuses fonctionnalités, notamment des moteurs de modèles, des bibliothèques WebSocket et des ORM. Selon la taille de votre équipe et de votre application, ces fonctionnalités pourraient être très utiles ou elles pourraient être plus que ce dont vous avez besoin.
Meteor
Meteor est le deuxième framework de nœuds les plus étoilés, visualisés et fourchus sur Github. La communauté est dynamique et la documentation est abondante. La documentation comprend les meilleures pratiques, les guides de style recommandés et de nombreux tutoriels et articles techniques. Meteor est livré avec npm et son propre gestionnaire de paquets appelé Atmosphere, ainsi que la prise en charge intégrée d’une banque de données Mongo et une intégration facile avec React, Angular ou Blaze. Il est plus opiniâtre que l’Express ou les Voiles.
Meteor utilise des « données sur le fil » par opposition au rendu côté serveur – le serveur envoie donc des données, pas du HTML, et le client les rend. L’outil de construction Meteor fournit un support prêt à l’emploi pour les mobiles via Cordova et prend en charge le rechargement à chaud.
Mise en route
L’outil de construction de Meteor est ce qui crée, compile et exécute votre application. Téléchargez-le via curl.
curl https://install.meteor.com/meteor create <project_name>
Cela créera la structure de fichiers pour tout ce dont vous avez besoin dans une application Javascript de base, organisée dans les répertoires /client et /server. cd dans la racine de votre projet et exécutez
meteor run
L’application devrait maintenant s’exécuter sur localhost:3000
Frameworks API REST
Si vous couvrez le côté client de votre application, vous aurez peut-être juste besoin d’un framework pour la partie serveur de votre pile. Dans ce cas, vous pouvez utiliser un cadre d’API REST simple pour gérer les demandes CRUD à votre serveur. Vous pouvez à peu près le faire avec Express, mais il existe également des cadres spécifiquement orientés vers la gestion de ce cas particulier.
Loopback
Loopback est le deuxième framework d’API REST le plus populaire, selon Github. Développé par IBM, il s’agit d’un « framework de nœuds open source hautement extensible basé sur Express qui vous permet de créer rapidement des API et des microservices. »Il est livré avec un outil de ligne de commande pour générer facilement des projets et créer des contrôleurs et des modèles et fournit une prise en charge complémentaire pour une authentification et une autorisation faciles. Il ne fournit aucun support pour les vues ou les modèles ou un ORM dédié, car il est destiné à être utilisé uniquement comme API.
Loopback vous permet de créer une API dynamique en quelques minutes avec un codage minimal. Le cycle de développement est très rapide et la structure du fichier est propre et utile. La configuration comprend des options pour configurer eslint, prettier, moka et docker dès la sortie de la boîte.
Mise en route
npm install -g @loopback/clilb4 <project_name>
Vous serez invité à répondre à plusieurs questions sur la configuration de votre application, et la structure du fichier sera échafaudée. cd dans la racine du projet et exécutez
npm start
Pour créer une nouvelle route, exécutez
lb4 controller
et répondez aux invites. Une fois le fichier de contrôleur créé, vous pouvez importer la fonction get de bouclage et l’utiliser pour configurer le contrôleur
import {get} from '@loopback/rest';export class HelloController { @get('/hello') hello(): string { return 'Hello world!'; }}
Résumé: Meilleur nœud.js Frameworks
Cadre | Performance | Communauté | Facilité d’utilisation | Idéal pour |
---|---|---|---|---|
Express | Rapide. Ajoute peu donc rien pour entrer dans le chemin de la vitesse brute du nœud. | Massif. Beaucoup de questions posées et répondues. | Aussi difficile que vous voulez le faire. | Grands et petits projets. Aussi un excellent moyen d’apprendre à travailler avec Node. |
Voiles | Moyennes. L’accent est mis sur l’amélioration de l’efficacité du développeur plutôt que sur les performances. | Grand. Un projet bien établi qui existe depuis longtemps. | Facile. Les plans rendent très facile l’exécution d’une API avec un codage minimal. | Projets de taille moyenne qui doivent démarrer rapidement. |
Météore | Plus lent. L’accent est mis sur la mise en place / le prototypage d’un projet très rapidement. | Plus petit mais dynamique et en croissance. | Facile. Les plans rendent très facile l’exécution d’une API avec un codage minimal. | Mettre rapidement en place de petits projets. Se salir les mains avec un nouvel outil. |
Bouclage | Moyen. | Petit, mais ceux qui l’aiment l’aiment vraiment. | Facile mais ne fournit pas autant à l’avance. | Création d’une API à l’échelle de l’entreprise pour un frontal séparé. |
Conclusions
Il est difficile de choisir un « meilleur » framework de nœud définitif, car le framework que vous choisissez changera en fonction de vos besoins. Si vous souhaitez avoir la liberté de choisir vos propres bibliothèques et intégrations tierces, Express ou Loopback pourrait être votre meilleur choix. Mais si votre équipe souhaite mettre en place une toute nouvelle application en quelques jours, Meteor ou Sails pourraient mieux répondre à vos besoins.
Il existe de nombreux autres frameworks au-delà de ceux discutés dans cet article, et la meilleure façon de savoir ce qui fonctionnera pour votre application ou votre équipe est de lire les documents et d’en essayer quelques-uns.
- Comment utiliser une API
- avec JavaScript
- Comment créer une API
- avec Node.js et Express.js
- Comment créer une application météo avec Node.js
- Comment configurer un serveur GraphQL avec Node et Express