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..
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
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:
les atouts
Dossierle 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..
Publique
DossierContient les fichiers accessibles au public, tels que les images utilisées par votre site, le favicon, etc..
config
DossierC'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éesapplication.js
- paramètres généraux pour l'applicationassets.js
- paramètres d'actif pour CSS et JSbootstrap.js
- code qui sera exécuté avant le lancement de l'applicationlieux
- dossier contenant les traductionspolicies.js
- configuration de la gestion des droits utilisateurroutes.js
- les routes pour le systèmeviews.js
- afficher les paramètres associésle sails.js
la documentation contient des informations détaillées sur chacun de ces dossiers.
vues
DossierLes 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.
api
DossierCe dossier est composé d'un répertoire de sous-dossiers:
adaptateurs
dossier contient les adaptateurs utilisés par l'application pourcontrôleurs
dossier contient les contrôleurs d'applicationdes modèles
dossierles politiques
dossier sont des règles stockées pour l'accès utilisateur de l'applicationprestations de service
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..
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
)Port
)environnement
)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.
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
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.
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..
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);
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:
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 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.
Ceux-ci sont définis dans le / assets / templates
et sont chargés comme nous l'avons vu ci-dessus.
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:
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.: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.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.