Introduction à MEAN.IO

Publié le 25 Nov. 2015 | Javascript | 1 comment

Si vous avez essayé de créer une application JavaScript  Fullstack, vous savez déjà à quel point il peut être difficile de gérer la structure et les dépendances entre les différentes technologies et outils de votre projet.

Heureusement, il existe des solutions permettant de créer rapidement un environnement de développement opérationnel pour créer une application utilisant JavaScript coté client et serveur.

Mean.io en est une, c’est un Framework Fullstack qui regroupe 4 technologies qui représentent chacune une couche de l’architecture MEAN :

  • MongoDB : Base de données orientée document ou les informations sont stockées au format JSON.
  • Express : Framework Node.js qui permet de gérer facilement les routes et d’utiliser un moteur de template.
  • AngularJS : Framework Javascript permettant de structurer et de simplifier le développement d'applications riches côté client
  • Node.js : Plateforme Javascript orientée serveur intégrant la gestion des entrées/sorties de manière non bloquante.

Prérequis

Connaitre un minimum chacune des technologies de la plateforme MEAN.

Installer MongoDB, Node.js et Git.

Installer Gulp : Outil qui permet d’automatiser l’exécution de tâches récurrentes, telles que les tests unitaires ou la compilation, lors du développement ou de la mise en production d’un projet.

npm install -g gulp

Installer Bower : Outil de gestion de librairies externes front-end et de leurs dépendances.

npm install -g bower

Installation

npm install -g mean-cli

 Initialisation de l'application dans un dossier et installation des dépendances :

mean init <myApp>
cd <myApp> npm install

On peut maintenant démarrer l'application

gulp

Elle est accessible à l’adresse http://localhost:3000  

Structure de l'application

 structure d'un projetLe repertoire bower_components contient les librairies front-end et les fichiers de gestion des dépendances gérées par bower. L'ensemble des fichiers de configuration se trouvent dans config. Ils concernent les paramètres de chaque environnement, les middlewares et express.js. gulp contient les tâches à executer pour chaque environnement et logs le journal de node.js. Les dépendances de node.js sont dans node_modules.

Le repertoire packages contient les modules de l'application.

Modules ou packages

Structure d'un moduleLe repertoite core dans packages contient les modules de base de l'application. Ces modules ne doivent pas être modifiés directement, mais leurs méthodes peuvent etre redéfinies dans d'autres modules dans le repertoire custom. Cela permet de réutiliser et d'adapter les fonctionalités de base, à des besoins spécifiques, mais aussi de pouvoir mettre à jour mean.io sans perdre le code ajouté. 

Les modules custom sont donc spécifiques à la logique applicative.

On peut créer un module à l'aide de la commande suivante :

mean package <packageName>

Les modules peuvent être utilisés dans des projets différents. Cela encourage la programmation modulaire et la réutilisabilité lors du développement d'un projet. Il est possible de partager et de publier des modules à travers la communauté de MEAN.IO.

Certains modules sont également disponibles sur le site mean.io : http://mean.io/#!/packages 

Conclusion

MEAN.IO est un outil complet qui convient pour structurer aisément une application full javascript. Les modules de base inclus avec MEAN.IO permettent de faciliter le développement en intégrant certaines fonctionnalités, souvent indispensables, comme l'authentification et la gestion des rôles.

Le prochain article sera consacré au fonctionnement des modules.

Comments

There are currently no comments

required

required (not published)

optional

About

Développeuse web passionnée par les nouvelles technologies et internet, j'ai eu mon premier ordinateur sous Windows 95 à l'age de 6 ans.
L'apparentissage du html et du langage C, avec l'arrivée d'internet, a été le début d'une longue aventure.
Maintenant titulaire d'une licence professionnelle en systèmes informatiques et logiciels, je continue à me former à distance. Je mets mes compétences à votre service pour le développement de votre site et/ou application web.

Categories

Tags

meanio
javascript
fullstack
nodejs
angularjs