La semaine dernière, je suis entré en contact avec le cadre Sails en construisant un système CMS et j'ai appris certains des concepts d'ORM. Cette semaine, nous avons commencé à approfondir l'interaction des données de fond et avons constaté que la structure de données du vingt framework a été conçue sur les voiles (telles que le nœud et la catégorie). Je dois dire que mon aîné est incroyable. Mais la complexité a également augmenté. Ma tâche dans le projet DTREE est d'utiliser les voiles pour interagir avec les processus métier et les bases de données. La prochaine fois cette semaine, c'est utiliser les voiles.
Introduction aux voiles
Sails est comme Ruby on Rails, et c'est aussi un cadre pour faciliter le développement Web. Pour autant que je sache au cours de cette période, il hérite complètement de certaines API d'Express & Socket.io et utilise la ligne de flottaison (ORM) pour l'interaction de la base de données unifiée, afin que les opérations CRUD puissent être terminées dans différents environnements de base de données sans modifier directement le code; Synchronise les données de l'avant et de l'arrière avec le cadre de l'épine dorsale et utilise les politiques middleware pour vérifier en toute sécurité l'interaction de ses propres plans. Il peut interagir via l'API Restull sans une seule ligne de code à l'avant et à l'arrière.
Socket.io & Express
Le front-end a appris ces deux choses dans le temps, l'une est la communication WebSock et l'autre consiste à traiter les demandes HTTP. Sails n'est pas repensé mais utilise ces deux outils pour faire face directement à ces fonctions, ce qui réduit les coûts d'apprentissage. Socket.io déclenche des messages, écoute les messages et effectue des opérations en conséquence sur le serveur et le client.
La copie de code est la suivante:
'
// côté serveur
io.sockets.on ("connexion", fonction (sock) {
sock.emit ("normalMessage", {a: "c"});
});
//Service client
sock.on ("normalMessage", fonction (json) {...});
'
La fonction d'Express réside dans les opérations de routage, telles que app.get ('/ login', fonction (req, res) {});.
Sails Blueprints & Backbone
Dans le développement Web, CRUD est un type d'opération similaire, tel que GET / POST dans HTTP et SELECT / INSERT dans la base de données. L'API Blueprint de Sails et le cadre de la squelette de JS utilisent tous deux une classe de fonctions unifiées (telles que FindOne), de sorte que la logique interne est déjà établie lorsque le programme établit le modèle et le contrôleur correspondant. Par exemple, le modèle d'utilisateurs couramment utilisé a construit un contrôleur dans les voiles pour passer et stocker les données des utilisateurs. Tout ce à quoi nous devons prêter attention, ce sont les spécifications et les processus métier des noms de fichiers. Il est également OK si vous souhaitez remplacer (surcharger) la méthode d'origine. Après avoir défini l'action et le contrôleur dans les routes du dossier de configuration, nous pouvons ajouter les fonctions dont nous avons besoin au contrôleur correspondant.
Ligne de flottaison
L'API du package dépendant des Sails est utilisée pour interagir avec des bases de données, telles que Create (), FindOne (), Update (), etc. Comme mentionné précédemment, nous n'avons pas à nous soucier de différents outils de base de données pour appeler ces méthodes directement uniformément. Par exemple, lors de la saisie des données
La copie de code est la suivante:
'
Users.create ({nom d'utilisateur: nom d'utilisateur, mot de passe: mot de passe}). Exec (fonction (erreur, utilisateur) {
if (error) {
res.send (500, {error: "db error"});
} autre {
req.Session.User = utilisateur;
res.send (utilisateur);
}
'
Le système par défaut consiste à enregistrer des données dans le système de fichiers local. Si nous devons choisir MySQL ou MongoDB. Modifiez-le simplement dans le fichier de configuration et sélectionnez l'adaptateur de base de données pour interagir avec les données.
Politiques
Appliqué au middleware sur le contrôleur, exécutez avant l'émission de la demande HTTP. Le contrôle d'identité peut être obtenu, par exemple, vous ne pouvez effectuer les actions suivantes que si vous vous connectez.
La copie de code est la suivante:
'
if (req.Session.User) {
var action = req.options.action;
if (action == "Create") {
req.body.userid = req.Session.user.id;
req.body.username = req.session.user.userName;
}
suivant();
}autre{
res.send ("vous devez être connecté", 403);
}
'
suivant
Sails a réussi à démarrer, mais il doit encore travailler plus dur à ce sujet. Ce n'est qu'en posant une base solide que nous pouvons répondre aux besoins spécifiques. Nous devons donc continuer d'apprendre, trouver plus de routines pour apprendre les voiles en profondeur et également connaître les limites de ce cadre.