Latest web development tutorials

Node.js globales Objekt

JavaScript hat ein spezielles Objekt, ein globales Objekt (Global Object) genannt, sie und alle ihre Attribute überall im Programm zugegriffen werden kann, die globale Variable.

Browser JavaScript in der Regel globale Fenster-Objekt ist, das globale Objekt Node.js global ist, alle globalen Variablen (mit Ausnahme von globalen selbst) sind Eigentum des globalen Objekts.

In Node.js uns den direkten Zugang zu den globalen Eigenschaften, ohne die Notwendigkeit, sie in der Anwendung enthalten.


Globale Objekte und globale Variablen

Die grundlegendste globale Rolle als globale Variable Host. Per Definition ECMAScript erfüllen die folgenden Bedingungen sind globale Variablen:

  • Äußerste definierte Variable;
  • Eigenschaften des globalen Objekts;
  • Variable implizit definiert (direkte Zuordnung nicht definierte Variablen).

Wenn Sie eine globale Variable definieren, dann wird die Variable auch die Eigenschaft des globalen Objekts werden, und umgekehrt. Beachten Sie, dass in Node.js Sie keine Variablen in der äußersten definieren können, da alle Benutzercodes Teil des aktuellen Moduls sind, und das Modul selbst ist nicht das äußerste Kontext.

Hinweis: immer var verwenden , um Variablen definieren, um die Einführung einer globalen Variablen zu vermeiden, da globale Variablen den Namensraum verschmutzen, erhöhen das Risiko von Kopplungscode.


__filename

__filename gibt den Dateinamen des Skripts gerade ausgeführt wird.Absoluter Pfad zu der Stelle, wo es um die Ausgabedatei sein wird, und die Befehlszeilenparameter und den Dateinamen angeben, ist nicht notwendigerweise gleich. Wenn in dem Modul zurückgegebene Wert ist der Pfad zu dem Modul-Datei.

Beispiele

Erstellen Sie eine Datei main.js, Code wie folgt:

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

Executive-main.js Datei, wird der Code wie folgt:

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

__dirname

__dirname stellt das derzeit ausgeführte Skript - Verzeichnis befindet.

Beispiele

Erstellen Sie eine Datei main.js, Code wie folgt:

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

Executive-main.js Datei, wird der Code wie folgt:

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

setTimeout (cb, ms)

setTimeout (cb, ms) globale Funktion führt die angegebene Funktion nach einer bestimmten Anzahl von Millisekunden (ms) Nummer (cb).: SetTimeout () Funktion wird nur einmal angegeben.

Es gibt einen Handle Wert des Timers darstellt.

Beispiele

Erstellen Sie eine Datei main.js, Code wie folgt:

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

Executive-main.js Datei, wird der Code wie folgt:

$ node main.js
Hello, World!

clear (t)

clear (t) wird verwendet , um eine globale Funktion zu stoppen , bevor er setTimeout () einen Timer zu erstellen.Parametert von setTimeout () Funktion einen Rechner zu erstellen.

Beispiele

Erstellen Sie eine Datei main.js, Code wie folgt:

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

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

Executive-main.js Datei, wird der Code wie folgt:

$ node main.js

setInterval (cb, ms)

setInterval (cb, ms) globale Funktion führt die angegebene Funktion nach einer bestimmten Anzahl von Millisekunden (ms) Nummer (cb).

Es gibt einen Handle Wert des Timers darstellt. Sie können dieclearInterval (t) Funktion den Timer zu löschen.

setInterval () -Methode wird auch weiterhin die Funktion, bis die clearInterval zu nennen () aufgerufen wird oder das Fenster geschlossen ist.

Beispiele

Erstellen Sie eine Datei main.js, Code wie folgt:

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

Executive-main.js Datei, wird der Code wie folgt:

$ node main.js
Hallo, Welt! Hallo, Welt! Hallo, Welt! Hallo, Welt! Hallo, Welt! ......

Das obige Programm wird ausgegeben , wenn alle zwei Sekunden "Hallo, Welt!", Und werden permanent die Ausführung wird fortgesetzt , bis SieStrg + C - Taste drücken.


Konsole

Konsole Konsole für die Standardausgabe bietet, das ist die Debugging-Tools von Internet Explorer JScript-Engine zur Verfügung gestellt, später immer die De-facto-Standard-Browser.

Node.js folgt dieser Norm stellt ein konsistentes Verhalten und Gewohnheiten des Objekts Konsole mit der Standardausgabe (stdout) oder Standard-Fehlerstrom (stderr) Ausgangs Zeichen verwendet.

Konsolen-Verfahren

Im Folgenden wird die Konsolen-Objekt:

Nein. Method & Beschreibung
1 console.log ([Daten] [, ... ])
Zu den Standardausgabe Druckzeichen und Ende mit einem Newline. Bei diesem Verfahren werden mehrere Parameter, wenn nur ein Parameter ist, der Ausgabezeichenfolge dieses Parameters. Wenn es mehrere Argumente, Orte wie die C-Sprache printf () Befehl Ausgabeformat.
2 console.info ([Daten] [, ... ])
P ist die Rolle des Befehl gibt eine Informationsmeldung, lautet der Befehl console.log Unterschied ist, zusätzlich zu dem Chrom wird nur dann ausgegeben, der Text, zeigt der Rest ein blaues Ausrufezeichen nicht groß.
3 console.error ([Daten] [, ... ])
Eine Fehlermeldung ausgeben. Konsole wird in Rot angezeigt, wenn ein Fehler auftritt, Gabel.
4 console.warn ([Daten] [, ... ])
Ausgang Meldung Warnung. Konsole erscheint mit einem gelben Ausrufezeichen.
5 console.dir (obj [Optionen])
Ein Objekt wird überprüft (überprüfen), und leicht zu lesendes Display und Druckformaten.
6 console.time (Etikett)
Der Ausgang der Zeit, die Startzeit.
7 console.timeEnd (Etikett)
Endzeit, die das Ende des Timings.
8 console.trace (message [, ...])
Code gerade ausgeführt wird den Aufrufpfad im Stapel, diese Testfunktion ausgeführt ist hilfreich, wollen einfach nur die Funktion zu testen, von denen console.trace auf der Linie verbunden.
9 console.assert (Wert [, senden] [ , ...])
Zur Bestimmung, ob eine Variable oder ein Ausdruck wahr ist, dauerte es zwei Parameter, der erste Parameter ist der Ausdruck und das zweite Argument ist ein String. Erst wenn das erste Argument falsch ist, wird der Ausgang das zweite Argument, es wäre keine Ergebnisse haben.
console.log (): auf die Standardausgabe gedruckt und mit einem Newline-Zeichen zu beenden.

console.log nimmt mehrere Parameter, wenn nur ein Parameter ist, der Ausgabezeichenfolge dieses Parameters. Wenn es mehrere Argumente, Orte wie die C-Sprache printf () Befehl Ausgabeformat.

Der erste Parameter ist eine Zeichenkette, ohne Parameter, nur eine neue Zeile zu drucken.

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

Die operativen Ergebnisse wie folgt:

Hello world 
byvoid%diovyb 
byvoid1991iovyb 
  • console.error (): mit console.log () verwendet die gleichen, aber der Ausgang auf den Standardfehlerstrom.
  • console.trace (): Fehlerstrom auf die Standardausgabe der aktuelle Call-Stack.
console.trace();

Die operativen Ergebnisse wie folgt:

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)

Beispiele

Erstellen Sie eine Datei main.js, Code wie folgt:

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

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

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

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

Executive-main.js Datei, wird der Code wie folgt:

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

Prozess

Prozess ist eine globale Variable, die globale Objekt-Attribut.

Es wird verwendet, den aktuellen Zustand des Objektes Node.js Prozess zu beschreiben, bietet es eine einfache Schnittstelle zu dem Betriebssystem. Normalerweise schreiben Sie nativen Kommandozeilen-Programm, und schließlich, mit ihm zu beschäftigen. Im Folgenden werden einige der am häufigsten verwendete Methode der Prozess Mitglieder wider einzuführen.

Nein. Events & Beschreibung
1 Ausfahrt
Wird ausgelöst, wenn der Prozess bereit ist, zu beenden.
2 beforeExit
Dieses Ereignis wird ausgelöst, wenn der Knoten leer Ereignisschleife und keine anderen Vereinbarungen. Im Allgemeinen, wenn es keinen Prozess-Exit-Knoten zu arrangieren, aber 'beforeExit' Zuhörer asynchron aufgerufen werden kann, so daß der Knoten fortsetzen wird.
3 uncaughtException
Wenn eine Ausnahme zurück in die Ereignisschleife sprudeln, lösen dieses Ereignis. Wenn Sie einen Monitor an die Ausnahme hinzufügen, (Druck ein Stack-Trace und Ausgang) die Standard-Aktion wird nicht auftreten.
4 DasSignal wird ausgelöst , wenn das Ereignis<br> , wenn der Prozess ein Signal empfängt. Hier finden Sie eine Liste von Signal POSIX-Standardsignalnamen wie SIGINT, SIGUSR1 und so weiter.

Beispiele

Erstellen Sie eine Datei main.js, Code wie folgt:

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

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

Executive-main.js Datei, wird der Code wie folgt:

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

Exit-Status-Codes

Exit-Statuscodes sind wie folgt:

Statuscode Titel & Beschreibung
1 Uncaught Fatal Exception
Es abgefangene Ausnahme, und es wurde nicht bearbeitet oder Domäne uncaughtException Handler.
2 ungebraucht
Beibehaltung
3 Interne JavaScript Parse - Fehler
JavaScript-Quellcode-Analysefehler verursacht, wenn Node-Prozess zu starten. Sehr selten, nur wenn wird es bei der Entwicklung von Knoten sein.
4 Interne JavaScript Bewertung Failure
JavaScript Quelle Knoten Startvorgang, wenn die Funktion Auswertung liefert Ausfall. Sehr selten, nur wenn wird es bei der Entwicklung von Knoten sein.
5 Fatal Error
V8 in nicht behebbarer Fehler fatal. Normalerweise drucken zu stderr, Inhalt: FATAL ERROR
6 Non-Funktion Interne Exception Handler
Abgefangene Ausnahme, Exception-Handler innerhalb irgendwie eingestellt on-Funktion und kann nicht aufgerufen werden.
7 Interne Exception Handler Run-Time Fehler
Abgefangene Ausnahme, und die Exception-Handler selbst zu behandeln löst eine Ausnahme. Zum Beispiel, wenn process.on ( 'uncaughtException') oder domain.on ( "Fehler") löst eine Ausnahme.
8 ungebraucht
Beibehaltung
9 Invalid Argument
Es kann auf die Parameter oder Parameter ohne Wert unbekannt sein.
10 Interne JavaScript - Laufzeit Failure
JavaScript-Quellcode wird ausgelöst, wenn Knoten Prozessfehler beginnen, sehr selten, nur dann, wenn es bei der Entwicklung von Knoten sein wird.
12 Ungültige Debug Argument
--debug Parametersatz und / oder --debug-brk, sondern wählte den falschen Port.
> 128 Signal Exits
Wenn der Knoten ein fatales Signal, wie SIGKILL oder SIGHUP empfängt, dann ist der Exit-Code 128 plus der Signalcode. Dies ist die Standard-Unix-Praxis, hohe Code auf Ausstiegssignale.

Prozessattribute

Verfahren bietet viele nützliche Eigenschaften, einfache Interaktion, die wir das System besser kontrollieren können:

Nummer. Property & Beschreibung
1 stdout
Standardausgabestrom.
2 stderr
Standardfehler-Stream.
3 stdin
Standard-Eingabestrom.
4 argv
argv-Eigenschaft gibt eine Reihe verschiedener Parameter auf der Kommandozeile Skriptausführung, wenn die Zusammensetzung. Die ersten Mitglieder sind immer Knoten, wobei das zweite Element ist das Skript, den Dateinamen und die übrigen Mitglieder sind die Parameter der Skriptdatei.
5 execPath
Gibt den absoluten Pfad des aktuellen Skriptausführung Knoten-Binärdateien.
6 execArgv
Liefert ein Array Mitglied ist unter der Befehlszeilenskript zwischen den Knoten ausführbaren Skriptdatei Befehlszeilenparameter ausgeführt wird.
7 env
Gibt ein Objekt zurück, die Mitglieder der aktuellen Shell-Umgebungsvariable
8 exitcode
Exit-Code für den Prozess, wenn der begabte Prozess durch process.exit (), Ausfahrt, ohne einen Exit-Code angeben.
9 Version
Node-Version, wie v0.10.18.
10 Versionen
Eine Eigenschaft, die die Knoten Versionen und Abhängigkeiten enthält.
11 Config
Objekt, das den aktuellen Knoten enthält, wird verwendet, um die ausführbare Datei JavaScript-Konfigurationsoptionen zu kompilieren. Es ist die gleiche Lauf ./configure-Script "config.gypi" Datei erzeugt.
12 pid
Die aktuelle Prozessnummer.
13 Titel
Prozessname, der Standard ist "Knoten", können Sie den Wert anpassen können.
14 Bogen
Die aktuelle CPU-Architektur: "Arm", "ia32" oder "x64".
15 Plattform
Führen Sie das Programm, in dem die Plattform 'Darwin', 'freebsd "," Linux "," sunos "oder" win32 "
16 mainModule
require.main alternative Methoden. Verschiedene Punkt, wenn das Hauptmodul zur Laufzeit geändert wird, require.main kann weiterhin das alte Modul zurückzukehren. Es wird angenommen, dass sowohl auf dem gleichen Modul beziehen.

Beispiele

Erstellen Sie eine Datei main.js, Code wie folgt:

// 输出到终端
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);

Executive-main.js Datei, wird der Code wie folgt:

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

Methode Referenzhandbuch

Verfahren bietet viele nützliche Methoden eine bessere Kontrolle über unser interaktives System zu erleichtern:

Nein. Method & Beschreibung
1 abbrechen ()
Dadurch wird der Knoten Abbruch Triggerereignis führen. Es wird Knoten beenden und eine Core-Datei zu erzeugen.
2 chdir (Verzeichnis)
Ändern Sie den aktuellen Arbeitsverzeichnis des Prozesses, wenn die Operation werfen ausfällt.
3 CWD ()
Gibt das Arbeitsverzeichnis des aktuellen Prozesses
4 Ausfahrt ([code])
Das Ende des Prozesses mit dem angegebenen Code. Wenn nicht vorhanden, wird es den Code 0 verwenden.
5 getgid ()
Erhalten Prozessgruppenidentifikation (siehe getgid (2)). Als die Gruppe digitale ID erworben, nicht nennen.
Hinweis: Diese Funktion kann verwendet werden (zB Nicht-Windows und Android) nur auf POSIX-Plattformen.
6 setgid (id)
Einstellen Gruppenidentifikationsprozess (siehe setgid (2)). Sie können eine digitale ID oder Gruppennamen erhalten. Wenn Sie einen Gruppennamen angeben, wird lösen für eine digitale ID zu sperren warten.
Hinweis: Diese Funktion kann verwendet werden (zB Nicht-Windows und Android) nur auf POSIX-Plattformen.
7 getuid ()
Erhalten Sie Benutzeridentifikationsprozess (siehe getuid (2)). Dies ist eine numerische Benutzer-ID, nicht den Benutzernamen ein.
Hinweis: Diese Funktion kann verwendet werden (zB Nicht-Windows und Android) nur auf POSIX-Plattformen.
8 setuid (id)
Benutzer-ID-Einstellung Prozess (siehe setuid (2)). Empfangen einer digitalen ID oder String-Namen. Wenn Sie einen Gruppennamen angeben, wird lösen für eine digitale ID zu sperren warten.
Hinweis: Diese Funktion kann verwendet werden (zB Nicht-Windows und Android) nur auf POSIX-Plattformen.
9 getgroups ()
Zurück Prozessgruppe iD-Array. POSIX-System garantiert nicht, dass es gibt, aber es ist node.js garantiert.
Hinweis: Diese Funktion kann verwendet werden (zB Nicht-Windows und Android) nur auf POSIX-Plattformen.
10 setgroups (Gruppen)
Set Prozessgruppen-ID. Es ist berechtigt, zu bedienen, alles, was Sie root-Rechte haben müssen, oder CAP_SETGID Kapazität.
Hinweis: Diese Funktion kann verwendet werden (zB Nicht-Windows und Android) nur auf POSIX-Plattformen.
11 initgroups (user, extra_group)
Lesen / etc / group, und initialisiert die Gruppenzugriffsliste, werden alle Gruppenmitglieder entfernt. Es ist berechtigt, zu bedienen, alles, was Sie root-Rechte haben müssen, oder CAP_SETGID Kapazität.
Hinweis: Diese Funktion kann verwendet werden (zB Nicht-Windows und Android) nur auf POSIX-Plattformen.
12 töten (pid [, Signal])
Sendet ein Signal an den Prozess. Pid die Prozess-ID und das Signal ist die Zeichenfolge beschreibt das Signal übertragen wird. Signalnamen sind Zeichenfolgen wie "SIGINT" oder "SIGHUP". Wenn nicht angegeben, wird das Signal "SIGTERM" sein.
13 Memoryusage ()
Es gibt ein Objekt, das den Prozess durch den Knoten Speicherstatusbytes verwendet wird, beschreibt.
14 nextTick (Rückruf)
Nach dem Ende der aktuellen Ereignisschleife, rufen Funktionen zurück.
15 umask ([Maske])
Set oder Prozessdateimaske lesen. Untergeordnete Prozesse erben die Maske aus dem übergeordneten Prozess. Wenn die Maske Argument gültig ist, gibt es die alte Maske. Andernfalls gibt es die aktuelle Maske.
16 uptime ()
Gibt die Anzahl der Sekunden Knoten bereits ausgeführt wird.
17 hrtime ()
Zeitauflösung des aktuellen Prozesses, in der Form [Sekunden ns] Array. Es ist in Bezug auf einen Ereignis in der Vergangenheit. Dieser Wert hat nichts mit dem Zeitpunkt zu tun, damit die Uhr nicht Drift beeinflussen. Der Hauptzweck ist durch die präzise Zeitintervall, um die Leistung des Programms zu messen.
Bevor Sie das Ergebnis an den aktuellen process.hrtime passieren kann (), wird es für die Referenz- und Messzeitintervall zwischen den beiden, der Zeitdifferenz zurück.

Beispiele

Erstellen Sie eine Datei main.js, Code wie folgt:

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

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

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

Executive-main.js Datei, wird der Code wie folgt:

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