Latest web development tutorials

Node.js oggetto globale

JavaScript ha un oggetto speciale, chiamato un oggetto globale (Object globale), con tutti i suoi attributi è possibile accedere in qualsiasi parte del programma, la variabile globale.

Browser JavaScript solito è oggetto finestra globale, l'oggetto globale Node.js è globale, tutte le variabili globali (ad eccezione per sé globale) sono di proprietà di oggetto globale.

In Node.js noi l'accesso diretto alle proprietà globali, senza la necessità di includere nell'applicazione.


Gli oggetti globali e le variabili globali

Il ruolo globale più fondamentale come host variabile globale. Per definizione ECMAScript soddisfano le seguenti condizioni sono variabili globali:

  • Outermost variabile definita;
  • Proprietà dell'oggetto globale;
  • Variabile implicitamente definito (assegnazione diretta variabili non definite).

Quando si definisce una variabile globale, la variabile diventerà anche la proprietà dell'oggetto globale, e viceversa. Si noti che, in Node.js non è possibile definire variabili nella più esterno, in quanto tutti i codici utente sono parte del modulo corrente, e il modulo in sé non è il contesto esterno.

Nota: utilizzare sempre var per definire variabili per evitare l'introduzione di una variabile globale, perché le variabili globali inquinare il namespace, aumentare il rischio di codice di accoppiamento.


__filename

__filename indica il nome del file dello script in fase di esecuzione.Percorso assoluto alla posizione in cui sarà il file di output, e il parametro della riga di comando e specificare il nome del file non è necessariamente la stessa. Se nel modulo, il valore restituito è il percorso del file del modulo.

Esempi

Creare un file main.js, codice come segue:

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

File esecutivo main.js, il codice è il seguente:

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

__dirname

__dirname rappresenta la directory script in esecuzione si trova.

Esempi

Creare un file main.js, codice come segue:

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

File esecutivo main.js, il codice è il seguente:

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

setTimeout (cb, ms)

setTimeout (cb, ms) funzione globale esegue la funzione specificata dopo un numero specificato di millisecondi (ms) Numero (CB).: La funzione setTimeout () viene specificato solo una volta.

Esso restituisce un valore maniglia rappresenta il timer.

Esempi

Creare un file main.js, codice come segue:

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

File esecutivo main.js, il codice è il seguente:

$ node main.js
Hello, World!

clearTimeout (t)

clearTimeout (t) viene utilizzato per interrompere una funzione globale prima di passare setTimeout () per creare un timer.Parametrot per funzione setTimeout () per creare una calcolatrice.

Esempi

Creare un file main.js, codice come segue:

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

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

File esecutivo main.js, il codice è il seguente:

$ node main.js

setInterval (cb, ms)

setInterval (cb, ms) funzione globale esegue la funzione specificata dopo un numero specificato di millisecondi (ms) Numero (CB).

Esso restituisce un valore maniglia rappresenta il timer. È possibile utilizzare la funzioneclearInterval (t) per azzerare il timer.

il metodo setInterval () continuerà a chiamare la funzione fino a quando il clearInterval () si chiama o la finestra è chiusa.

Esempi

Creare un file main.js, codice come segue:

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

File esecutivo main.js, il codice è il seguente:

$ node main.js
Ciao, mondo! Ciao, mondo! Ciao, mondo! Ciao, mondo! Ciao, mondo! ......

Il programma sarà in uscita una volta ogni due secondi "Ciao, mondo!", E sarà permanentemente l'esecuzione continua finché non si preme il tastoCTRL + C.


consolle

console console per fornire standard output, che è gli strumenti di debug forniti dal motore di JScript di Internet Explorer, per poi diventare il browser standard de facto.

Node.js segue questo standard, fornisce un comportamento coerente e le abitudini dell'oggetto console utilizzata per il flusso di output standard (stdout) o caratteri di uscita flusso di errore standard (stderr).

metodo console

Quanto segue è l'oggetto della console:

No. Metodo & descrizione
1 console.log ([i dati] [... ])
Per i caratteri di stampa flusso di output standard e terminare con un ritorno a capo. Questo metodo richiede diversi parametri, se vi è un solo parametro, la stringa di output di questo parametro. Se ci sono più argomenti, posti come il formato di output del comando linguaggio C printf ().
2 console.info ([i dati] [... ])
P è il ruolo del comando restituisce un messaggio informativo, il comando è differenza console.log non è grande, oltre al cromo verrà emesso solo il testo, il resto verrà visualizzato un punto esclamativo blu.
3 Console.Error ([i dati] [... ])
Output un messaggio di errore. Console verrà visualizzato in rosso quando si verifica un errore della forcella.
4 console.warn ([i dati] [... ])
Messaggio avviso è uscita. Console appare con un punto esclamativo giallo.
5 console.dir (obj [opzioni])
Un oggetto utilizzato per controllare (ispezione), e facile da leggere formati di visualizzazione e di stampa.
6 console.time (etichetta)
L'uscita del tempo, l'ora di inizio.
7 console.timeEnd (etichetta)
Fine tempo, che indica la fine dei tempi.
8 console.trace (messaggio [...])
Codice sta eseguendo il percorso di richiamo nello stack, eseguire questa funzione di test è utile, vogliono solo per testare la funzione di cui si è unito console.trace sulla linea.
9 console.assert (valore [, messaggio] [ ...])
Per determinare se una variabile o espressione è vero, ci sono voluti due parametri, il primo parametro è l'espressione e il secondo argomento è una stringa. Solo quando il primo argomento è falso, l'uscita sarà il secondo argomento, non avrebbe alcun risultato.
console.log (): stampa al flusso di output standard e termina con un carattere di nuova riga.

console.log accetta diversi parametri, se vi è un solo parametro, la stringa di output di questo parametro. Se ci sono più argomenti, posti come il formato di output del comando linguaggio C printf ().

Il primo parametro è una stringa, senza parametri, solo stampare un ritorno a capo.

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

I risultati di gestione come segue:

Hello world 
byvoid%diovyb 
byvoid1991iovyb 
  • Console.Error (): con console.log () utilizza la stessa, ma l'output nel flusso di errore standard.
  • console.trace (): flusso di errore sullo standard output lo stack di chiamate corrente.
console.trace();

I risultati di gestione come segue:

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)

Esempi

Creare un file main.js, codice come segue:

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

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

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

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

File esecutivo main.js, il codice è il seguente:

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

processo

processo è una variabile globale che attributo dell'oggetto globale.

E 'usato per descrivere lo stato attuale del processo Node.js oggetto, fornisce una semplice interfaccia al sistema operativo. In genere si scrive il programma a riga di comando nativo, e in ultima analisi, a trattare con esso. Di seguito vi introdurrà alcuni dei metodi più comunemente usato di processo membri si oppongano.

No. Eventi e descrizione
1 uscita
Viene eseguito quando il processo è pronto per uscire.
2 beforeExit
Questo evento viene attivato quando il nodo vuoto ciclo di eventi, e non altri accordi. Generalmente, quando non vi è alcun processo di organizzare nodo di uscita, ma ascoltatori 'beforeExit' possono essere richiamati in modo asincrono, in modo che il nodo continuerà.
3 uncaughtException
Quando un'eccezione gorgogliare di nuovo al ciclo di eventi, attivare questo evento. Se si aggiunge un monitor per l'eccezione, l'azione predefinita (stampare una traccia dello stack e l'uscita) non si verificano.
4 Segnale viene attivato quando l'evento<br> quando il processo riceve un segnale. Consulta l'elenco di nomi dei segnali POSIX standard di segnale, come SIGINT, SIGUSR1 e così via.

Esempi

Creare un file main.js, codice come segue:

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

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

File esecutivo main.js, il codice è il seguente:

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

codici di stato uscita

codici di stato uscita sono i seguenti:

Codice di stato Titolo e descrizione
1 Uncaught irreversibile
Ci eccezioni non rilevate, e non è stato elaborato o dominio gestore uncaughtException.
2 non usato
ritenzione
3 Errore JavaScript Parse interno
JavaScript codice sorgente errore di analisi causato quando iniziare il processo di Node. Molto raramente, solo quando ci sarà nello sviluppo del Nodo.
4 Interno mancata valutazione JavaScript
JavaScript processo di avvio nodo di origine, al momento di valutare la funzione restituisce fallimento. Molto raramente, solo quando ci sarà nello sviluppo del Nodo.
5 Fatal Error
V8 in errore irreversibile fatale. Di solito stampare su stderr, contenuti: ERRORE FATALE
6 Non-funzione di un'eccezione interna Handler
eccezioni non rilevate, gestore di eccezioni all'interno qualche modo impostato in funzione e non può essere chiamato.
7 Eccezione interna Handler Run-Time Failure
eccezioni non rilevate, e il gestore di eccezioni per gestire la propria genera un'eccezione. Ad esempio, se process.on ( 'uncaughtException') o domain.on ( 'errore') genera un'eccezione.
8 non usato
ritenzione
9 Argomento non valido
Può essere sconosciuto ai parametri o parametro di alcun valore.
10 Interno JavaScript Run-Time Failure
codice sorgente JavaScript viene generata quando partire errori di processo Nodo, molto raro, solo quando ci sarà lo sviluppo del Nodo.
12 Argomento di debug non valido
set --debug parametri e / o --debug-BRK, ma ha scelto la porta sbagliata.
> 128 Uscite di segnale
Se il nodo riceve un segnale fatale, come SIGKILL o SIGHUP, quindi il codice di uscita è 128 più il codice del segnale. Questa è la pratica standard Unix, codice alto sui segnali di uscita.

attributi di processo

Processo fornisce molte proprietà utili, la facilità di interazione che siamo in grado di controllare meglio il sistema:

Numero. Proprietà e descrizione
1 stdout
flusso di output standard.
2 stderr
flusso di errore standard.
3 stdin
flusso di input standard.
4 argv
argv proprietà restituisce un array di vari parametri in esecuzione di script da riga di comando quando la composizione. I suoi primi soci sono sempre nodo, il secondo membro è il nome del file di script, e le restanti membri sono i parametri del file di script.
5 execPath
Restituisce il percorso assoluto degli attuali binari del nodo esecuzione dello script.
6 execArgv
Restituisce un membro di matrice è sotto lo script viene eseguito da riga di comando tra i parametri dei nodi file eseguibile lo script della riga di comando.
7 ENV
Restituisce un oggetto, i membri della variabile d'ambiente shell corrente
8 exitCode
Codice di uscita per il processo, se il processo Donata da process.exit exit (), senza specificare un codice di uscita.
9 versione
versione nodo, tali v0.10.18.
10 versioni
Una proprietà che contiene le versioni dei nodi e le dipendenze.
11 config
Oggetto che contiene il nodo corrente viene utilizzato per compilare il file eseguibile JavaScript opzioni di configurazione. E 'lo stesso script run ./configure generato file "config.gypi".
12 pid
Il numero di processo in corso.
13 titolo
nome del processo, il valore predefinito è "nodo", è possibile personalizzare il valore.
14 arco
L'attuale architettura della CPU: 'braccio', 'ia32' o '64'.
15 piattaforma
Eseguire il programma in cui la piattaforma 'Darwin', 'FreeBSD', 'Linux', 'SunOS' o 'Win32'
16 mainModule
require.main metodi alternativi. punto diverso, se il modulo principale viene modificato in fase di esecuzione, require.main può continuare a tornare al vecchio modulo. Si ritiene che si riferiscono entrambi allo stesso modulo.

Esempi

Creare un file main.js, codice come segue:

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

File esecutivo main.js, il codice è il seguente:

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

Manuale Metodo di riferimento

Processo fornisce un sacco di metodi utili per facilitare un migliore controllo del nostro sistema interattivo:

No. Metodo & descrizione
1 abort ()
Questo farà sì che l'evento nodo di interruzione di attivazione. Si esce nodo e generare un file core.
2 chdir (directory)
Cambiare la directory di lavoro corrente del processo, se l'operazione non riesce buttare.
3 cwd ()
Restituisce la directory di lavoro del processo corrente
4 uscita ([code])
La fine del processo con il codice specificato. Se omesso, verrà utilizzato il codice 0.
5 getgid ()
Ottenere l'identificazione gruppo di processi (si veda getgid (2)). Quando il gruppo è stato acquisito ID digitale, non il nome.
Nota: Questa funzione può essere utilizzata (ad esempio, non Windows e Android) solo su piattaforme POSIX.
6 setgid (id)
Impostazione processo di identificazione di gruppo (vedere setgid (2)). È possibile ricevere un documento d'identità o di un gruppo nome digitale. Se si specifica un nome di gruppo risolverà per bloccare in attesa di un ID digitale.
Nota: Questa funzione può essere utilizzata (ad esempio, non Windows e Android) solo su piattaforme POSIX.
7 getuid ()
Ottenere processo di identificazione dell'utente (vedi getuid (2)). Si tratta di una user id numerico, non il nome utente.
Nota: Questa funzione può essere utilizzata (ad esempio, non Windows e Android) solo su piattaforme POSIX.
8 setuid (id)
processo di impostazione User ID (vedi setuid (2)). Ricezione di un documento d'identità o stringa di nome digitale. Se si specifica un nome di gruppo risolverà per bloccare in attesa di un ID digitale.
Nota: Questa funzione può essere utilizzata (ad esempio, non Windows e Android) solo su piattaforme POSIX.
9 getgroups ()
Rientro gruppo di processo serie iD. sistema POSIX non garantisce che ci sia, ma ci è Node.js garantita.
Nota: Questa funzione può essere utilizzata (ad esempio, non Windows e Android) solo su piattaforme POSIX.
10 setgroups (gruppi)
Set ID gruppo di processi. E 'autorizzata ad operare, tutto è necessario disporre di privilegi di root, o hanno la capacità CAP_SETGID.
Nota: Questa funzione può essere utilizzata (ad esempio, non Windows e Android) solo su piattaforme POSIX.
11 initgroups (utente, extra_group)
Leggi / etc / group, e inizializza la lista di accesso di gruppo, tutti i membri del gruppo si trovano. E 'autorizzata ad operare, tutto è necessario disporre di privilegi di root, o hanno la capacità CAP_SETGID.
Nota: Questa funzione può essere utilizzata (ad esempio, non Windows e Android) solo su piattaforme POSIX.
12 uccidere (PID [segnale])
Invia un segnale al processo. PID è l'ID di processo, e il segnale è la stringa che descrive il segnale trasmesso. nomi dei segnali sono stringhe come 'SIGINT' o 'SIGHUP'. Se omesso, il segnale sarà 'SIGTERM'.
13 MemoryUsage ()
Esso restituisce un oggetto che descrive il processo utilizzato dai byte di stato della memoria del nodo.
14 nextTick (callback)
Dopo la fine del ciclo di eventi corrente, richiamare funzioni.
15 umask ([maschera])
Impostare o leggere maschera di file di processo. processi figli ereditano la maschera dal processo genitore. Se l'argomento maschera è valida, restituisce la vecchia maschera. Altrimenti, restituisce la maschera corrente.
16 uptime ()
Restituisce il numero di secondi di nodo è già in esecuzione.
17 hrtime ()
risoluzione temporale del processo corrente, nella forma [secondi, nanosecondi] array. E 'in relazione a qualsiasi evento passato. Questo valore non ha nulla a che fare con la data, quindi non influenzare la deriva dell'orologio. Lo scopo principale è attraverso l'intervallo di tempo preciso, per misurare le prestazioni del programma.
Prima di passare il risultato alla process.hrtime corrente (), tornerà alla differenza di tempo tra i due, per il riferimento e misurazione dell'intervallo di tempo.

Esempi

Creare un file main.js, codice come segue:

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

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

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

File esecutivo main.js, il codice è il seguente:

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