Maison > interface Web > js tutoriel > le corps du texte

Tutoriel d'introduction minimaliste Nodejs (1) : module mécanisme_node.js

WBOY
Libérer: 2016-05-16 16:32:52
original
1041 Les gens l'ont consulté

La spécification JavaScript (ECMAScript) ne définit pas une bibliothèque standard complète pouvant être utilisée par la plupart des programmes. CommonJS fournit un ensemble de spécifications de bibliothèque standard JavaScript. Node implémente la spécification CommonJS.

Bases du module

Dans Node, les modules et les fichiers ont une correspondance biunivoque. On définit un module :

Copier le code Le code est le suivant :

// cercle.js
var PI = Math.PI;

//Exporter la zone de fonction
exports.area = fonction(r) {
Retour PI * r * r;
>

//Exporter la circonférence de la fonction
exports.circumference = function(r) {
Retourner 2 * PI * r;
};

Ici, ajoutez les fonctions qui doivent être exportées vers l'objet d'exportation. Les variables locales d'un module ne sont pas accessibles de l'extérieur (par exemple, la variable PI dans l'exemple ci-dessus). Appelez require pour charger le module circle.js :
Copier le code Le code est le suivant :

var cercle = require('./circle.js');
console.log('L'aire d'un cercle de rayon 4 est '
            circle.area(4));

À propos, dans le module, il y a un objet module, qui représente le module lui-même, et exports est l'attribut du module.

Chargement des modules

Le nœud mettra en mémoire tampon les modules chargés pour éviter la surcharge liée au chargement :

Copier le code Le code est le suivant :

// test.js
console.log("Je suis là");

Charger le module test.js plusieurs fois

Copier le code Le code est le suivant :

// N'affiche "Je suis là"
qu'une seule fois require('./test');
require('./test');

Lors du chargement d'un fichier sans suffixe, Node essaiera d'ajouter un suffixe et chargera :

1..js (fichier source JavaScript)
2..nœud (module d'extension C/C)
3..json (fichier JSON)

Il existe plusieurs grandes catégories de modules :

1.Module de base. Les modules de base ont été compilés dans Node, et nous pouvons trouver ces modules de base dans le répertoire lib dans son code source. Modules de base communs : modules net, http, fs, etc.

2.Module Fichier. Les modules de fichiers sont chargés via un chemin relatif ou absolu, comme circle.js

nous avons vu ci-dessus

3.Module personnalisé. Les modules personnalisés se trouvent dans le répertoire node_modules, et les différents modules que nous installons via npm sont placés dans le répertoire node_modules

Le module principal est toujours chargé en premier. S'il existe un module personnalisé http, alors le module principal http sera toujours chargé à la place du module personnalisé http. Lors du chargement d'un module personnalisé, recherchez d'abord le répertoire node_modules dans le répertoire courant, puis le répertoire node_modules sous le répertoire parent, et ainsi de suite jusqu'au répertoire racine.

require Lorsque le module chargé n'est pas un fichier, mais un répertoire, un tel répertoire est appelé un package. Il y a un fichier nommé package.json (fichier de description du package) dans le package, par exemple :

Copier le code Le code est le suivant :

{ "name" : "une-bibliothèque",
"main" : "./lib/some-library.js" }

Où main indique le module qui doit être chargé. Si package.json n'existe pas dans le package ou si le module principal n'est pas spécifié dans package.json, Node tentera de charger index.js, index.node et index.json.

Lors du chargement d'un module JavaScript, le module chargé est enveloppé dans une fonction :

Copier le code Le code est le suivant :

function(module, exports, __filename, __dirname, ...) {
Module JavaScript
>

Le module, les exportations, __filename, __dirname, etc. accessibles par chaque module JavaScript sont en fait transmis via les paramètres de fonction. Du fait de cet emballage, les variables locales du module sont inaccessibles de l'extérieur. Mais parfois il y a des problèmes difficiles à comprendre, comme :

test1.js

Copier le code Le code est le suivant :

exportations = {
nom : 'Nom5566',
>

test2.js

Copier le code Le code est le suivant :

module.exports = {
nom : 'Nom5566',
>

Chargez ces deux modules :

Copier le code Le code est le suivant :

var test1 = require('./test1.js');
console.log(test1.name); // non défini
var test2 = require('./test2.js');
console.log(test2.name); // Nom5566

Les exportations sont passées au module en paramètre. Nous pouvons naturellement ajouter des attributs (ou des méthodes) à l'objet exports via exports.x, mais attribuer directement une valeur aux exportations (par exemple, exports = x) ne modifie que le formel. paramètres plutôt que la valeur réelle des paramètres, donc :

1. Lors de l'ajout d'attributs aux exportations, utilisez les exportations
2. Lors de l'attribution de valeurs aux exportations, utilisez module.exports

Pack

Selon les spécifications CommonJS, un package complet doit contenir :

Fichier de description du package 1.package.json
Répertoire de fichiers binaires 2.bin
3.lib Répertoire de codes JavaScript
4.doc répertoire des documents
5.test répertoire de codes de test

NPM est un outil de gestion de packages pour Node. Usage courant :

Voir la documentation de la commande :

Copier le code Le code est le suivant :

npm aide à installer

Voir la documentation de la commande install.

Installer un package :

Copier le code Le code est le suivant :

npm installer redis

Installez le package redis. La commande install installera le package dans le répertoire node_modules du répertoire courant.

Supprimer un colis :

Copier le code Le code est le suivant :

npm supprimer redis

Supprimez le package redis. La commande Remove supprimera le package dans le répertoire actuel.
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!