Introduction à Sails.js

Sails est un framework Javascript conçu pour ressembler à l'architecture MVC de frameworks tels que Ruby on Rails. Il facilite le processus de création d'applications Node.js, en particulier d'API, d'applications à page unique et de fonctionnalités en temps réel, telles que le chat..


Installation

Pour installer Sails, c'est assez simple. Node.js doit être installé sur les prérequis, ainsi que npm, fourni avec Node. Ensuite, il faut lancer la commande suivante dans le terminal:

sudo npm installer sails -g

Créer un nouveau projet

Afin de créer un nouveau projet Sails, la commande suivante est utilisée:

navigue dans le nouveau myNewProject

Sails générera un nouveau dossier nommé myNewProject et ajoutez tous les fichiers nécessaires à la création d’une application de base. Pour voir ce qui a été généré, il suffit d'entrer dans le myNewProject dossier et exécutez le serveur Sails en émettant la commande suivante dans le terminal:

ascenseur à voiles

Le port par défaut de Sails est 1337, donc si vous visitez http: // localhost: 1337 vous devriez obtenir les voiles par défaut index.html page.


Maintenant, regardons ce que Sails a généré pour nous. Dans notre myNewProject dossier les fichiers et sous-dossiers suivants ont été créés:


le les atouts Dossier

le les atouts Ce dossier contient des sous-répertoires pour les fichiers Javascript et CSS à charger lors de l'exécution. C’est le meilleur endroit pour stocker les bibliothèques auxiliaires utilisées par votre application..

le Publique Dossier

Contient les fichiers accessibles au public, tels que les images utilisées par votre site, le favicon, etc..

le config Dossier

C'est l'un des dossiers importants. Voiles est conçu pour être flexible. Cela suppose certaines conventions standard, mais permet également au développeur de modifier la manière dont Sails configure l'application créée pour répondre aux besoins du projet. Voici une liste des fichiers de configuration présents dans le config dossier:

  • adapters.js - utilisé pour configurer les adaptateurs de base de données
  • application.js - paramètres généraux pour l'application
  • assets.js - paramètres d'actif pour CSS et JS
  • bootstrap.js - code qui sera exécuté avant le lancement de l'application
  • lieux - dossier contenant les traductions
  • policies.js - configuration de la gestion des droits utilisateur
  • routes.js - les routes pour le système
  • views.js - afficher les paramètres associés

le sails.js la documentation contient des informations détaillées sur chacun de ces dossiers.

le vues Dossier

Les vues de l'application sont stockées dans ce dossier. En regardant son contenu, nous remarquons que les vues sont générées par défaut en tant que EJS (JavaScript incorporé). Également vues Le dossier contient des vues pour la gestion des erreurs (404 et 500) ainsi que le fichier de présentation (layout.ejs) et les vues du contrôleur domestique générées par Sails.

le api Dossier

Ce dossier est composé d'un répertoire de sous-dossiers:

  • la adaptateurs dossier contient les adaptateurs utilisés par l'application pour
    gérer les connexions de base de données
  • la contrôleurs dossier contient les contrôleurs d'application
  • les modèles de l'application sont stockés dans le des modèles dossier
  • dans le les politiques dossier sont des règles stockées pour l'accès utilisateur de l'application
  • les services api mis en œuvre par l'application sont stockés dans la prestations de service
    dossier

Configurez l'application

Jusqu'à présent, nous avons créé notre application et examiné ce qui était généré par défaut. Il est maintenant temps de configurer l'application pour l'adapter à nos besoins..

réglages généraux

Les paramètres généraux sont stockés dans config / application.js fichier. Les options configurables pour l'application sont:

  • Nom de l'application (nom de l'application)
  • le port sur lequel l'application va écouter (Port)
  • l'environnement d'application; peut être soit le développement ou la production (environnement)
  • le niveau de l’enregistreur, utilisable pour contrôler la taille du fichier journal (bûche)

Notez qu'en configurant l'application environnement en production, rend Sails bundle et minimise les CSS et JS, ce qui peut compliquer le débogage.

Itinéraires

Les itinéraires d’application sont définis dans le config / routes.js fichier. Comme vous vous en doutez, ce fichier sera celui avec lequel vous travaillerez le plus souvent lorsque vous ajouterez de nouveaux contrôleurs à l’application..

Les itinéraires sont exportés comme suit, dans le fichier de configuration:

module.exports.routes = // route vers la page d'index du contrôleur domestique '/': controller: 'home', // route vers le contrôleur d'authentification, action de connexion '/ login': controller: 'auth' , action: 'login', // route vers le contrôleur de blog, ajoute une action pour ajouter une publication à un blog //, notez que nous utilisons également la méthode / verbe HTTP avant le chemin 'post / blog / add':: controller: 'blog', action: 'add_post', // route pour obtenir le premier article de blog. L'action find renverra // la ligne de la base de données contenant les informations souhaitées '/ blog /: item': controller: blog, action: find

Des vues

En ce qui concerne les vues, les options configurables sont le moteur de gabarit à utiliser et, si une mise en page doit ou non être utilisée, pour les vues.


Des modèles

Les modèles sont une représentation des données d'application stockées dans une base de données. Les modèles sont définis à l'aide d'attributs et d'associations. Par exemple, la définition d'un La personne Le modèle pourrait ressembler à ceci:

// Person.js var Person = nom: 'STRING', age: 'INTEGER', date de naissance: 'DATE', numéro de téléphone: 'STRING', adresse email: 'STRING'; exportations = Personne;

La communication avec la base de données sous-jacente se fait via des adaptateurs. Les adaptateurs sont définis dans api / adaptateurs et sont configurés dans le adapters.js fichier. Au moment de la rédaction de cet article, Sails est livré avec trois adaptateurs: memory, disk et mysql mais vous pouvez écrire votre propre adaptateur (voir la documentation pour plus de détails)..

Une fois que vous avez défini un modèle, vous pouvez l'utiliser en créant des enregistrements, en recherchant des enregistrements, en les mettant à jour et en les détruisant..


Contrôleurs

Les contrôleurs sont placés dans api / contrôleurs. Un contrôleur est créé à l'aide de la commande suivante:

les voiles génèrent les commentaires du contrôleur

Cette commande va générer un CommentController objet. Les actions sont définies dans cet objet. Des actions peuvent également être générées lorsque vous émettez le générer un contrôleur commander:

les voiles génèrent le commentaire du contrôleur créent une balise de destruction comme

Cela va créer un Commentaire contrôleur avec des actions pour créer, détruire, étiquette et comme.

Les actions reçoivent en tant que paramètres la requête et les objets de réponse, qui peuvent être utilisés pour obtenir les paramètres de l'URI (l'objet de requête) ou être affichés dans la vue (à l'aide de l'objet de réponse).

Pour communiquer avec le modèle, le rappel de l'action appropriée est utilisé. Par exemple, dans le cas d’une requête sur une base de données avec trouver, le modèle suivant est utilisé pour manipuler le modèle:

Blog.find (id) .done (err, blog) // blog est l'enregistrement de la base de données avec l'ID spécifié console.log (blog.content); 

Des vues

Les vues sont utilisées pour gérer l'interface utilisateur de l'application. Par défaut, les vues sont gérées à l'aide d'EJS, mais vous pouvez utiliser n'importe quelle autre bibliothèque de modèles. La configuration des vues a déjà été abordée dans le chapitre Configuration..

Les vues sont définies dans le / vues répertoire et les modèles sont définis dans le / assests / templates dossier.

Il existe principalement quatre types de vues:

  • vues côté serveur
  • voir les partiels
  • vues de disposition
  • vues côté client

Vues côté serveur

Leur travail consiste à afficher des données lorsqu'une vue est demandée par le client. Généralement la méthode res.view correspond à un client avec la vue appropriée. Mais si aucun contrôleur ou action n'existe pour une requête, Sails servira la vue de la manière suivante: /views/:controller/:action.ejs.

La vue de mise en page

La mise en page peut être trouvé dans /views/layout.ejs. Il est utilisé pour charger les actifs de l'application tels que les feuilles de style ou les bibliothèques JavaScript..

Regardez le fichier spécifié:

   <%- title %>    <%- assets.css() %> <%- assets.js() %>   <%- body %>  <%- assets.templateLibrary() %>  

Les lignes assets.css () et assets.js () charger les actifs CSS et JS de notre application et les assets.templateLibrary charge les modèles de client.

Modèles côté client

Ceux-ci sont définis dans le / assets / templates et sont chargés comme nous l'avons vu ci-dessus.


Itinéraires

Nous avons discuté de la façon de configurer les itinéraires dans le chapitre Configuration.

Il existe plusieurs conventions suivies par Sails lorsque des itinéraires sont gérés:

  • si l'URL n'est pas spécifié dans le config / routes.js la route par défaut pour une URL est /: contrôleur /: action /: id avec les significations évidentes pour contrôleur et action et identifiant étant le paramètre de demande dérivé de l'URL.
  • si :action n’est pas spécifié, Sails redirigera vers l’action appropriée. A la sortie de la boîte, les mêmes conventions d’itinéraire RESTful sont utilisées comme dans Backbone.
  • si le contrôleur / l'action demandé n'existe pas, Sails se comportera comme suit:
    • si une vue existe, Sails rendra cette vue
    • si une vue n'existe pas, mais qu'un modèle existe, Sails renverra la forme JSON de ce modèle.
    • Si rien de ce qui précède n’existe, Sails répondra par un message 404.

Conclusion

Maintenant que j'ai à peine gratte la surface avec ce que Sails peut faire, mais restez à l'écoute, car je donnerai suite à une présentation détaillée vous expliquant comment créer une application à l'aide de Sails..

Sachez également que Sails est en cours de développement et en constante évolution. Alors assurez-vous de consulter la documentation pour voir ce qu'il y a de neuf.