Latest web development tutorials

Node.js objet global

JavaScript a un objet spécial, appelé un objet global (Global Object), et tous ses attributs est accessible partout dans le programme, la variable globale.

Navigateur JavaScript est généralement objet fenêtre globale, l'objet global Node.js est global, toutes les variables globales (sauf se global) sont la propriété de l'objet global.

En Node.js nous accès direct aux propriétés globales, sans la nécessité d'inclure dans l'application.


Les objets globaux et les variables globales

Le rôle global plus fondamental en tant qu'hôte variable globale. Par définition ECMAScript remplissent les conditions suivantes sont des variables globales:

  • Outermost variable définie;
  • Propriétés de l'objet global;
  • Variable implicitement défini (affectation directe des variables non définies).

Lorsque vous définissez une variable globale, la variable deviendra également la propriété de l'objet global, et vice versa. Notez que, dans Node.js vous ne pouvez pas définir des variables dans la plus à l'extérieur, parce que tous les codes utilisateur font partie du module en cours, et le module lui-même est pas le contexte le plus extérieur.

Remarque: toujours utiliser var pour définir des variables afin d'éviter l'introduction d'une variable globale, car les variables globales vont polluer l'espace de noms, augmenter le risque d' un code de couplage.


__filename

__filename indique le nom du fichier du script en cours d'exécution.Chemin absolu à l'endroit où il sera le fichier de sortie, et le paramètre de ligne de commande et spécifiez le nom de fichier ne sont pas nécessairement les mêmes. Si dans le module, la valeur renvoyée est le chemin vers le fichier de module.

Exemples

Créer un fichier main.js, code comme suit:

// 输出全局变量 __filename 的值
console.log( __filename );

fichier main.js exécutif, le code est le suivant:

$ node main.js
/web/com/w3big/nodejs/main.js

__dirname

__dirname représente le répertoire du script en cours d' exécution est situé.

Exemples

Créer un fichier main.js, code comme suit:

// 输出全局变量 __dirname 的值
console.log( __dirname );

fichier main.js exécutif, le code est le suivant:

$ node main.js
/web/com/w3big/nodejs

setTimeout (cb, ms)

setTimeout (cb, ms) fonction globale exécute la fonction spécifiée après un nombre spécifié de millisecondes (ms) Nombre (cb).: Fonction SetTimeout () est spécifié qu'une seule fois.

Elle renvoie une valeur de poignée représente la minuterie.

Exemples

Créer un fichier main.js, code comme suit:

function printHello(){
   console.log( "Hello, World!");
}
// 两秒后执行以上函数
setTimeout(printHello, 2000);

fichier main.js exécutif, le code est le suivant:

$ node main.js
Hello, World!

clearTimeout (t)

clearTimeout (t) est utilisé pour arrêter une fonction globale avant de passer setTimeout () pour créer une minuterie.Paramètret par fonction setTimeout () pour créer une calculatrice.

Exemples

Créer un fichier main.js, code comme suit:

function printHello(){
   console.log( "Hello, World!");
}
// 两秒后执行以上函数
var t = setTimeout(printHello, 2000);

// 清除定时器
clearTimeout(t);

fichier main.js exécutif, le code est le suivant:

$ node main.js

setInterval (cb, ms)

setInterval (cb, ms) fonction globale exécute la fonction spécifiée après un nombre spécifié de millisecondes (ms) Nombre (cb).

Elle renvoie une valeur de poignée représente la minuterie. Vous pouvez utiliser la fonctionclearInterval (t) pour effacer la minuterie.

méthode setInterval () continuera à appeler la fonction jusqu'à ce que le clearInterval () est appelée ou la fenêtre est fermée.

Exemples

Créer un fichier main.js, code comme suit:

function printHello(){
   console.log( "Hello, World!");
}
// 两秒后执行以上函数
setInterval(printHello, 2000);

fichier main.js exécutif, le code est le suivant:

$ node main.js
Bonjour tout le monde! Bonjour tout le monde! Bonjour tout le monde! Bonjour tout le monde! Bonjour tout le monde! ......

Le programme ci - dessus affichera une fois toutes les deux secondes "Bonjour tout le monde!", Et sera en permanence l' exécution se poursuit jusqu'à ce que vous appuyez surctrl + c bouton.


console

console de la console pour fournir la sortie standard, ce qui est des outils de débogage fournis par le moteur JScript d'Internet Explorer, devenant plus tard, le navigateur standard de facto.

Node.js suit cette norme, fournit un comportement cohérent et les habitudes de l'objet de la console utilisée pour le flux de sortie standard (stdout) ou flux d'erreur standard (stderr) caractères de sortie.

méthode console

Ce qui suit est l'objet de la console:

Non. Méthode & Description
1 console.log ([data] [, ... ])
Pour les caractères d'impression de flux de sortie standard et se terminer par un saut de ligne. Cette méthode prend plusieurs paramètres, s'il n'y a qu'un seul paramètre, la chaîne de sortie de ce paramètre. S'il y a plusieurs arguments, des endroits comme le printf du langage C () format de sortie de commande.
2 console.info ([data] [, ... ])
P est le rôle de la commande renvoie un message d'information, la commande est la différence console.log est pas grande, en plus du chrome ne sortie le texte, le reste affiche un point d'exclamation bleu.
3 console.error ([data] [, ... ])
Émettre un message d'erreur. Console sera affiché en rouge quand une erreur se produit fourchette.
4 console.warn ([data] [, ... ])
Un message d'avertissement est émis. Console apparaît avec un point d'exclamation jaune.
5 console.dir (obj [, options])
Un objet utilisé pour vérifier (inspecter), et facile à lire les formats d'affichage et d'impression.
6 console.time (label)
La sortie du temps, le temps de démarrage.
7 console.timeEnd (label)
Fin du temps, ce qui indique la fin de la synchronisation.
8 console.trace (message de [...])
Code est en cours d'exécution le chemin d'appel dans la pile, exécutez cette fonction de test est utile, je veux juste tester la fonction qui a rejoint console.trace sur la ligne.
9 console.assert (valeur [, message] [ , ...])
Pour déterminer si une variable ou une expression est vraie, il a fallu deux paramètres, le premier paramètre est l'expression et le second argument est une chaîne. Seulement lorsque le premier argument est faux, la sortie sera le deuxième argument, il ne serait pas de résultats.
console.log (): imprimer sur le flux de sortie standard et se terminer par un caractère de nouvelle ligne.

console.log accepte plusieurs paramètres, s'il n'y a qu'un seul paramètre, la chaîne de sortie de ce paramètre. S'il y a plusieurs arguments, des endroits comme le printf du langage C () format de sortie de commande.

Le premier paramètre est une chaîne, sans paramètres, seulement imprimer un saut de ligne.

console.log('Hello world'); 
console.log('byvoid%diovyb'); 
console.log('byvoid%diovyb', 1991); 

Les résultats d'exploitation comme suit:

Hello world 
byvoid%diovyb 
byvoid1991iovyb 
  • console.error (): avec console.log () utilise le même, mais la sortie du flux d'erreur standard.
  • console.trace (): flux d'erreur sur la sortie standard de la pile d'appel en cours.
console.trace();

Les résultats d'exploitation comme suit:

Trace: 
at Object.<anonymous> (/home/byvoid/consoletrace.js:1:71) 
at Module._compile (module.js:441:26) 
at Object..js (module.js:459:10) 
at Module.load (module.js:348:31) 
at Function._load (module.js:308:12) 
at Array.0 (module.js:479:10) 
at EventEmitter._tickCallback (node.js:192:40)

Exemples

Créer un fichier main.js, code comme suit:

console.info("程序开始执行:");

var counter = 10;
console.log("计数: %d", counter);

console.time("获取数据");
//
// 执行一些代码
// 
console.timeEnd('获取数据');

console.info("程序执行完毕。")

fichier main.js exécutif, le code est le suivant:

$ node main.js
程序开始执行:
计数: 10
获取数据: 0ms
程序执行完毕

processus

processus est une variable globale qui attribut objet global.

Il est utilisé pour décrire l'état actuel du processus Node.js. d'objet, il fournit une interface simple, le système d'exploitation. Typiquement, vous écrivez le programme de ligne de commande native, et, finalement, de traiter avec elle. Ce qui suit va introduire une partie de la méthode la plus couramment utilisée de processus membres s'y opposent.

Non. Events & Description
1 sortie
Se déclenche lorsque le processus est prêt à quitter.
2 beforeExit
Cet événement est déclenché lorsque la boucle d'événements de noeud vide, et aucun autre arrangement. En général, quand il n'y a pas de processus pour organiser noeud de sortie, mais les auditeurs 'beforeExit' peuvent être appelées de façon asynchrone, de sorte que le noeud se poursuivra.
3 uncaughtException
Quand une exception barbotage retour à la boucle d'événement, déclencher cet événement. Si vous ajoutez un moniteur à l'exception, l'action par défaut (imprimer une trace de pile et de sortie) ne se produira pas.
4 Lesignal est déclenché lorsque l'événement<br> lorsque le processus reçoit un signal. Voir la liste des standards de signal noms de signaux POSIX tels que SIGINT, SIGUSR1 et ainsi de suite.

Exemples

Créer un fichier main.js, code comme suit:

process.on('exit', function(code) {

  // 以下代码永远不会执行
  setTimeout(function() {
    console.log("该代码不会执行");
  }, 0);
  
  console.log('退出码为:', code);
});
console.log("程序执行结束");

fichier main.js exécutif, le code est le suivant:

$ node main.js
程序执行结束
退出码为: 0

codes d'état de sortie

codes d'état de sortie sont les suivantes:

Code du statut Titre et description
1 Exception fatale Uncaught
Il exception uncaught, et il n'a pas été traité ou d'un domaine uncaughtException gestionnaire.
2 inutilisé
rétention
3 Erreur interne JavaScript Parse
JavaScript code source erreur d'analyse causé lors du démarrage de processus de Node. Très rarement, seulement quand il y aura dans le développement de Node.
4 Panne interne d' évaluation JavaScript
JavaScript processus de démarrage du nœud source, lors de l'évaluation de la fonction retourne l'échec. Très rarement, seulement quand il y aura dans le développement de Node.
5 erreur fatale
V8 dans l'erreur irrécupérable fatale. Habituellement imprimer sur stderr, contenu: FATAL ERROR
6 Non-fonction Exception Handler interne
Uncaught exception, gestionnaire d'exceptions à l'intérieur en quelque sorte mis en fonction, et ne peut pas être appelé.
7 Exception interne Handler Run-Time Échec
Uncaught exception, et le gestionnaire d'exception pour gérer leur propre déclenche une exception. Par exemple, si process.on ( 'uncaughtException') ou domain.on ( «erreur») renvoie une exception.
8 inutilisé
rétention
9 Argument non valide
Il peut être inconnu des paramètres ou paramètre à aucune valeur.
10 Défaut interne JavaScript Run-Time
JavaScript code source est jeté lors du démarrage des erreurs de processus Node, très rares, seulement quand il y aura dans le développement de Node.
12 Invalid Debug Argument
--debug ensemble des paramètres et / ou --debug-brk, mais il a choisi le mauvais port.
> 128 Sorties signal
Si le nœud reçoit un signal fatal, comme SIGKILL ou SIGHUP, puis le code de sortie est de 128 ainsi que le code de signal. Ceci est la pratique standard Unix, haute code sur les signaux de sortie.

attributs de processus

Processus fournit de nombreuses propriétés utiles, la facilité d'interaction que nous pouvons mieux contrôler le système:

Nombre. Propriété & Description
1 stdout
flux de sortie standard.
2 stderr
flux d'erreur standard.
3 stdin
flux d'entrée standard.
4 argv
argv propriété renvoie un tableau de différents paramètres sur l'exécution du script de ligne de commande lorsque la composition. Ses premiers membres sont toujours noeud, le deuxième élément est le nom du fichier de script, et les membres restants sont les paramètres du fichier de script.
5 execPath
Retourne le chemin absolu des fichiers binaires actuels Node d'exécution de script.
6 execArgv
Renvoie un membre du groupe est sous le script de ligne de commande est exécutée entre les paramètres de ligne de commande Node exécutables de fichiers de script.
7 env
Retourne un objet, les membres de la variable d'environnement shell courant
8 exitCode
Code de sortie pour le processus, si le processus offert par process.exit exit (), sans spécifier un code de sortie.
9 version
version Node, ces v0.10.18.
10 versions
Une propriété qui contient les versions de noeud et dépendances.
11 config
Objet qui contient le noeud courant est utilisé pour compiler le fichier exécutable javascript options de configuration. Il est le même script run ./configure généré fichier "config.gypi".
12 pid
Le nombre de processus en cours.
13 titre
Nom du processus, la valeur par défaut est «nœud», vous pouvez personnaliser la valeur.
14 voûte
L'architecture actuelle de la CPU: «bras», «ia32» ou «x64».
15 plate - forme
Exécutez le programme où la plate-forme 'darwin', 'freebsd', 'linux', 'SunOS' ou 'win32'
16 mainModule
require.main méthodes alternatives. Différents points, si le module principal est modifié lors de l'exécution, require.main peut continuer à revenir à l'ancien module. On croit que les deux se rapportent au même module.

Exemples

Créer un fichier main.js, code comme suit:

// 输出到终端
process.stdout.write("Hello World!" + "\n");

// 通过参数读取
process.argv.forEach(function(val, index, array) {
   console.log(index + ': ' + val);
});

// 获取执行路局
console.log(process.execPath);


// 平台信息
console.log(process.platform);

fichier main.js exécutif, le code est le suivant:

$ node main.js
Hello World!
0: node
1: /web/www/node/main.js
/usr/local/node/0.10.36/bin/node
darwin

Manuel Méthode de référence

Process fournit un grand nombre de méthodes utiles pour faciliter un meilleur contrôle de notre système interactif:

Non. Méthode & Description
1 abort ()
Cela entraînera l'événement noeud abort de déclenchement. Il quittera nœud et générer un fichier de base.
2 chdir (répertoire)
Modifier le répertoire de travail courant du processus, si l'opération échoue jeter.
3 cwd ()
Renvoie le répertoire de travail du processus en cours
4 sortie ([code])
La fin du processus avec le code spécifié. En cas d'omission, il utilisera le code 0.
5 getgid ()
Obtenez l'identification du groupe de processus (voir getgid (2)). Lorsque le groupe a été acquis id numérique, pas le nom.
Remarque: Cette fonction peut être utilisée (par exemple, non-Windows et Android) uniquement sur les plates-formes POSIX.
6 setgid (id)
Réglage processus d'identification de groupe (Voir setgid (2)). Vous pouvez recevoir un ID ou le nom du groupe numérique. Si vous spécifiez un nom de groupe va résoudre pour bloquer en attente d'une identification numérique.
Remarque: Cette fonction peut être utilisée (par exemple, non-Windows et Android) uniquement sur les plates-formes POSIX.
7 getuid ()
Obtenez processus d'identification de l'utilisateur (voir getuid (2)). Ceci est un identifiant utilisateur numérique, pas le nom d'utilisateur.
Remarque: Cette fonction peut être utilisée (par exemple, non-Windows et Android) uniquement sur les plates-formes POSIX.
8 setuid (id)
processus de réglage de l'ID utilisateur (voir setuid (2)). Réception d'un ID ou une chaîne nom numérique. Si vous spécifiez un nom de groupe va résoudre pour bloquer en attente d'une identification numérique.
Remarque: Cette fonction peut être utilisée (par exemple, non-Windows et Android) uniquement sur les plates-formes POSIX.
9 getgroups ()
Retour groupe de processus réseau iD. système POSIX ne garantit pas qu'il y ait, mais il est node.js garantie.
Remarque: Cette fonction peut être utilisée (par exemple, non-Windows et Android) uniquement sur les plates-formes POSIX.
10 setgroups (groupes)
Set ID de groupe de processus. Il est autorisé à utiliser, tout ce que vous devez avoir les privilèges root, ou avoir une capacité CAP_SETGID.
Remarque: Cette fonction peut être utilisée (par exemple, non-Windows et Android) uniquement sur les plates-formes POSIX.
11 initgroups (utilisateur, extra_group)
Lire / etc / group, et initialise la liste d'accès de groupe, tous les membres du groupe sont situés. Il est autorisé à utiliser, tout ce que vous devez avoir les privilèges root, ou avoir une capacité CAP_SETGID.
Remarque: Cette fonction peut être utilisée (par exemple, non-Windows et Android) uniquement sur les plates-formes POSIX.
12 kill (pid [signal])
Envoie un signal au processus. Pid est l'identifiant du processus, et le signal est la chaîne décrivant le signal transmis. Les noms des signaux sont des chaînes comme «SIGINT» ou «SIGHUP. En cas d'omission, le signal sera «SIGTERM».
13 memoryusage ()
Elle retourne un objet qui décrit le processus utilisé par les octets d'état de mémoire de nœud.
14 nextTick (callback)
Une fois la fin de la boucle d'événements en cours, rappel des fonctions.
15 umask ([masque])
Définir ou processus de lecture masque de fichier. Les processus enfants héritent le masque du processus parent. Si l'argument de masque est valide, il renvoie l'ancien masque. Sinon, elle renvoie le masque actuel.
16 uptime ()
Renvoie le nombre de Node secondes est déjà en cours d'exécution.
17 hrtime ()
La résolution temporelle du processus en cours, sous la forme [secondes, nanosecondes] tableau. Il est à l'égard de tout événement passé. Cette valeur n'a rien à voir avec la date, donc pas d'incidence sur la dérive d'horloge. Le but principal est à travers l'intervalle de temps précis, pour mesurer la performance du programme.
Avant de pouvoir transmettre le résultat à l'process.hrtime courant (), il reviendra à la différence de temps entre les deux, pour la référence et la mesure intervalle de temps.

Exemples

Créer un fichier main.js, code comme suit:

// 输出当前目录
console.log('当前目录: ' + process.cwd());

// 输出当前版本
console.log('当前版本: ' + process.version);

// 输出内存使用情况
console.log(process.memoryUsage());

fichier main.js exécutif, le code est le suivant:

$ node main.js
当前目录: /web/com/w3big/nodejs
当前版本: v0.10.36
{ rss: 12541952, heapTotal: 4083456, heapUsed: 2157056 }