Préface
Si nous n'apprenons pas les NodeJS, nous allons vieillir ... lorsque le HTML5 Wave Hit, de nombreux ancêtres ont commencé leur parcours Nodejs, et à ce moment-là, je travaillais toujours sur des programmes côté serveur.
Plus tard, je suis passé à l'avant, et la distance entre elle et l'échelon était déjà très grande. Parce que je connaissais la langue côté serveur et fonctionnais pendant longtemps, j'ai seulement commencé à apprendre les nodejs et à me déplacer vers le frontal complet.
Cette fois, le plan pour apprendre Nodejs est:
① Apprenez les connaissances de base en 1-2 semaines
② Développement d'un projet simple en environ 1 semaine
③ Utilisez des nodejs pour développer un ensemble d'outils pour le débogage mobile
④ L'emballage lié (cela peut être éloigné)
Fonctionnalités nodejs
① Asynchrone
Les NodeJ sont tous terminés de manière asynchrone de la lecture de fichiers aux demandes de réseau, et les fonctions de rappel jouent un rôle important. Le nœud est le modèle de programme leader
② Rappel d'événements
Les rappels d'événements rendent le programme léger, mais la spécificité dépend du programmeur. Cependant, la fonction de rappel est en fait assez difficile à lire.
③ Single Fileted
Le nœud est unique. S'il est multi-thread, cette langue sera plus profonde. Il est très ennuyeux de poser quelques questions sur la communication dans le processus, mais le fil n'a pas de blocages ou d'autres problèmes.
Mais il y a des problèmes avec la parenté des performances, car le multi-core ne peut pas être utilisé;
Mécanisme de module / CommonJS
Nous avions l'habitude de faire du développement côté serveur. Si nous n'avions pas de bon code organisationnel, il serait très difficile de maintenir plus tard, alors quel MVC et l'architecture à trois couches seront là?
Désormais, la logique métier de la frontale se rapproche progressivement de l'arrière-end. En ce qui concerne les applications à une seule page, il a dépassé la logique du programme du back-end.
L'augmentation continue des vues des pages entraînera une augmentation du montant du code JS. Comment gérer bien notre code frontal est devenu un problème, donc le requirejs apparaît ...
PS: Merde, cette période a une relation de dime avec Nodejs ...
JavaScript n'a pas de système modulaire, donc CommonJS a proposé de donner à JS la base du développement d'applications à grande échelle.
Référence du module
Si nous voulons faire référence à un module, comme le calcul mathématique lié: lié:
var math = require ('math');
Définition du module
Si nous voulons définir notre propre module, nous pouvons le faire
La copie de code est la suivante:
export.add = function () {
somme de retour;
}
Si cette fonction est définie en mathématiques, elle peut être utilisée
math.add ();
ID du module
L'identifiant du module est le paramètre passé pour nécessiter. Il doit être nommé pour le chameau et pointe vers un chemin de fichier. Il est très similaire aux obligations ici.
Implémentation du module
L'implémentation du module de nœud est divisée en deux catégories: l'une est le module de base au niveau du système et l'autre est le module de fichier écrit par les utilisateurs.
Le module de base est traduit dans un fichier binaire pendant le processus de compilation. Une fois le processus de nœud démarré, certains modules de base seront chargés directement dans la mémoire (emplacement du fichier, compilation et exécution)
Le module de fichier doit être chargé dynamiquement et la vitesse est relativement lente.
Cependant, une fois chargés, ces fichiers seront mis en cache, et les fichiers mis en cache (fichiers compilés) seront lus à nouveau lorsqu'ils sont importés (fichiers compilés)
Parlons un peu plus ici. Lorsque nous utilisons un soulignement, nous compilerons HTML pour former une fonction de modèle (c'est vraiment juste une fonction). En fait, cela peut être mis en cache.
Enregistrez les fonctions compilées avant de déployer le projet et supprimez le fichier de modèle HTML (je ne connais pas l'effet d'optimisation)
Dans le nœud, chaque module est un objet:
La copie de code est la suivante:
Module de fonction (id, parent) {
this.id = id;
this.exports = {};
// parent est un mot-clé, il ne doit pas être utilisé au hasard
this.parent = parent;
if (parent && parent.children) {
parent.children.push (this);
}
this.filename = null;
this.loaded = false;
this.children = [];
}
La dernière étape de l'introduction du module de fichier lors de la compilation et de l'exécution. Après avoir localisé le fichier spécifique, le nœud créera un nouvel objet de module, puis chargera et compile en fonction du chemin.
Chaque module compilé avec succès mettra en cache son chemin de fichier en tant qu'index sur module._cache
Chaque fichier de module a trois variables: exiger, exportations et modules, mais ils ne sont pas définis dans le fichier (les variables __FileName__ et __dirname__ sont également).
En fait, pendant le processus de compilation, le nœud enveloppe le contenu de la tête et de la queue de fichier JavaScript (équivalent à passer une fonction personnalisée dans la fenêtre)
La copie de code est la suivante:
(fonction (exportations, require, module, __filename__, __dirname__) {
var math = require ('math');
export.area = fonction (rayon) {
retour '';
};
});
De cette façon, le module est isolé et ne se affectera pas mutuellement. Il est quelque peu similaire à la compilation de soulignement ...
Package et npm
Node organise ses propres modules de base, de sorte que les modules de fichiers tiers peuvent être écrits et utilisés de manière ordonnée, mais dans les modules tiers, les modules sont toujours hachées à divers endroits.
Il ne peut pas être directement référencé entre l'autre. Dans l'externalisation des modules et le NPM sont un mécanisme pour établir des connexions.
PS: de nombreux modules formeront un package. Le concept de ce package est similaire à celui du package Java.
Après décompression d'une structure de package, plusieurs fichiers seront formés:
① package.json Description Fichier
② répertoire binaire exécutable de bac
③ répertoire de code LIB JavaScript
④ Document Doc (éblouissant n'existe essentiellement)
⑤ Démo de test
Ce qui précède est quelques-unes des spécifications du package CommonJS, mais nous pouvons apprendre un peu (débutants), et le NPM doit être compétent. À l'aide de NPM, nous pouvons maîtriser l'installation de packages de gestion.
Installer le package de dépendance
L'installation des packages de dépendance est une méthode courante:
NPM Install Express
Après l'exécution, le répertoire Node_Modules sera créé dans le répertoire actuel, puis le répertoire express sera créé en dessous ...
PS: Express est un cadre de développement Web populaire sur NodeJS, nous aidant à développer rapidement une application Web
Une fois l'installation terminée, on peut l'appeler:
La copie de code est la suivante:
var express = require ('express');
Conclusion
Cette section est simplement terminée et le processus de combat réel de notre projet s'approfondira progressivement.