Latest web development tutorials

Node.js globalnego obiektu

JavaScript ma specjalny obiekt, zwany globalnym obiektem (Global Object), to i wszystkie jej atrybuty mogą być dostępne w każdym miejscu programu, zmiennej globalnej.

Przeglądarka JavaScript zwykle jest globalny okno obiektu, obiekt globalny node.js jest globalny, wszystkie zmienne globalne (oprócz globalnego siebie) są własnością globalnego obiektu.

W node.js nam bezpośredni dostęp do globalnych właściwości, bez konieczności umieścić go w aplikacji.


Globalne obiekty i zmienne globalne

Najbardziej fundamentalną rolę w globalnej zmiennej globalnej gospodarza. Z definicji ECMAScript spełniać następujące warunki są zmienne globalne:

  • Najbardziej zewnętrzna zdefiniowana zmienna;
  • Właściwości obiektu globalnego;
  • Zmienna zdefiniowana w sposób dorozumiany (bezpośrednie przypisanie niezdefiniowane zmienne).

Po zdefiniowaniu zmiennej globalnej, zmienna będzie również stać się własnością globalnego obiektu, i vice versa. Zauważ, że w node.js nie można zdefiniować zmienne w najbardziej oddalonych, ponieważ wszystkie kody użytkownika są częścią bieżącego modułu, a sam moduł nie jest kontekst peryferyjnych.

Uwaga: należy zawsze używać var do definiowania zmiennych w celu uniknięcia wprowadzenia zmiennej globalnej, ponieważ zmienne globalne zanieczyszczają przestrzeń nazw, zwiększają ryzyko kod sprzęgła.


__filename

__filename wskazuje nazwę pliku skryptu aktualnie wykonywany.Bezwzględna ścieżka do miejsca, gdzie będzie plik wyjściowy, a parametr wiersza poleceń i określić nazwę pliku nie zawsze jest taka sama. Jeśli w module, wartość zwracana jest ścieżka do pliku modułu.

Przykłady

Stwórz main.js plików, kod w następujący sposób:

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

Wykonawczy plik main.js, kod jest w następujący sposób:

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

__dirname

__dirname reprezentuje aktualnie wykonywany skrypt katalogu znajduje.

Przykłady

Stwórz main.js plików, kod w następujący sposób:

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

Wykonawczy plik main.js, kod jest w następujący sposób:

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

setTimeout (cb, ms)

setTimeout (cb, ms) globalna funkcja wykonuje określoną funkcję po upływie określonej liczby milisekund (ms) numer (cb).: Funkcja setTimeout () jest określony tylko jeden raz.

Zwraca wartość uchwyt reprezentuje stoper.

Przykłady

Stwórz main.js plików, kod w następujący sposób:

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

Wykonawczy plik main.js, kod jest w następujący sposób:

$ node main.js
Hello, World!

clearTimeout (t)

clearTimeout (t) jest używany, aby zatrzymać funkcję globalnego przed przekazaniem setTimeout (), aby utworzyć czasomierza.Parametrt według funkcji setTimeout (), aby utworzyć kalkulatora.

Przykłady

Stwórz main.js plików, kod w następujący sposób:

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

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

Wykonawczy plik main.js, kod jest w następujący sposób:

$ node main.js

setInterval (cb, ms)

setInterval (cb, ms) globalna funkcja wykonuje określoną funkcję po upływie określonej liczby milisekund (ms) numer (cb).

Zwraca wartość uchwyt reprezentuje stoper. Można użyć funkcjiclearInterval (T), aby usunąć timer.

Metoda setInterval () nadal będzie wywołać funkcję aż do clearInterval () jest wywoływana czy okno jest zamknięte.

Przykłady

Stwórz main.js plików, kod w następujący sposób:

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

Wykonawczy plik main.js, kod jest w następujący sposób:

$ node main.js
Hello, World! Hello, World! Hello, World! Hello, World! Hello, World! ......

Powyższy program wyświetli raz na dwie sekundy "Hello, World!", I zostanie trwale realizacja trwa do momentu naciśnięcia przyciskuCtrl + C.


konsola

Konsola Konsola za dostarczanie standardowe wyjście, czyli narzędzia do debugowania świadczone przez silnik JScript Internet Explorer, a później stał się de facto standardem w przeglądarce.

Node.js następuje ten standard, zapewnia konsekwentne zachowanie i nawyki obiektu konsoli używanej do standardowego strumienia wyjściowego (stdout) lub standardowy strumień błędów (stderr) znaków wyjściowych.

metoda konsoli

Poniżej znajduje się obiekt konsoli:

Nie. Sposób i opis
1 console.log ([Dane] [... ])
Do standardowych znaków drukarskich strumienia wyjściowego i kończyć nową linią. Metoda ta trwa kilka parametrów, jeśli jest tylko jeden parametr, ciąg wyjściowy tego parametru. Jeśli istnieje wiele argumentów, miejsca takie jak język C printf () format wyjściowy poleceń.
2 console.info ([Dane] [... ])
P jest rola komendy zwraca komunikat informacyjny, komenda jest console.log różnica nie jest duża, oprócz Chrome będzie odtwarzany tylko tekst, reszta pojawi się niebieski wykrzyknik.
3 console.error ([Dane] [... ])
Komunikat o błędach. Konsola zostanie wyświetlona na czerwono, gdy wystąpi błąd widelec.
4 console.warn ([Dane] [... ])
Komunikat ostrzegawczy jest wysyłany. pojawia się konsola z żółtym wykrzyknikiem.
5 console.dir (obj [opcje])
Obiekt wykorzystywany do sprawdzania (wglądu), i łatwy do odczytania wyświetlacz i drukowanie formatach.
6 console.time (etykieta)
Wyjście czasu, czas rozpoczęcia.
7 console.timeEnd (etykieta)
Czasu zakończenia, co wskazuje zakończenie czasu.
8 console.trace (komunikat [...])
Kod jest aktualnie wykonywany ścieżki połączeń w stosie, należy uruchomić tę funkcję testu jest pomocny, po prostu chcesz przetestować funkcję którego dołączył console.trace na linii.
9 console.assert (wartość [, wiadomość] [ ...])
W celu określenia, czy zmienna lub wyrażenie jest prawdą, zajęło dwa parametry, pierwszy parametr jest wyrazem i drugi argument jest łańcuchem. Tylko wtedy, gdy pierwszy argument jest fałszywy, to wyjście będzie drugi argument, to nie miałby żadnych wyników.
console.log (): drukowanie do standardowego strumienia wyjściowego i kończyć się znakiem nowej linii.

console.log przyjmuje kilka parametrów, jeśli jest tylko jeden parametr, ciąg wyjściowy tego parametru. Jeśli istnieje wiele argumentów, miejsca takie jak język C printf () format wyjściowy poleceń.

Pierwszy parametr jest ciągiem znaków, bez parametrów, tylko wydrukować przełamane.

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

Wyniki operacyjne w następujący sposób:

Hello world 
byvoid%diovyb 
byvoid1991iovyb 
  • console.error (): z console.log () używa tego samego, ale wyjście do standardowego strumienia błędów.
  • console.trace (): Błąd strumienia na standardowe wyjście prądu stosu wywołań.
console.trace();

Wyniki operacyjne w następujący sposób:

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)

Przykłady

Stwórz main.js plików, kod w następujący sposób:

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

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

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

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

Wykonawczy plik main.js, kod jest w następujący sposób:

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

proces

Proces jest globalną zmienną globalną atrybutów obiektu.

jest stosowany do opisania obecnego stanu procesu node.js przedmiotu, zapewnia prosty interfejs dla systemu operacyjnego. Zazwyczaj piszesz natywnego programu wiersza poleceń, a ostatecznie do czynienia z nim. Poniższa wprowadzi niektóre z najczęściej stosowanych metod procesu członkowie obiektu.

Nie. Opis i wydarzenia
1 wyjście
Fires, gdy proces jest gotowy, aby zamknąć.
2 beforeExit
To zdarzenie jest wywoływane, gdy węzeł pusta pętla zdarzeń, a nie inne rozwiązania. Ogólnie rzecz biorąc, gdy nie ma proces w celu ustalenia węzła wyjścia, a słuchaczy "beforeExit" może być nazywany asynchronicznie, tak, że węzeł będzie kontynuowane.
3 uncaughtException
Gdy wyjątek propagacji z powrotem do pętli zdarzeń, wywoła to zdarzenie. Jeśli dodać monitor do wyjątku, akcja domyślna (wydrukować ślad stosu i wyjście) nie nastąpi.
4 Sygnał jest wyzwalany, gdy Największa impreza,gdy proces otrzyma sygnał. Zobacz listę standardowych sygnałów nazw sygnałów POSIX takich jak SIGINT, SIGUSR1 i tak dalej.

Przykłady

Stwórz main.js plików, kod w następujący sposób:

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

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

Wykonawczy plik main.js, kod jest w następujący sposób:

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

Kody stanu Wyjdź

Kody stanu wyjściowego są w następujący sposób:

Kodeks cywilny Tytuł i opis
1 Uncaught Krytyczny wyjątek
Istnieje przechwycony wyjątek, a nie zostało przetworzone lub domena uncaughtException obsługi.
2 Niewykorzystane
retencja
3 Wewnętrzny błąd składni JavaScript
JavaScript kod źródłowy spowodował błąd parsowania podczas uruchamiania procesu węzła. Bardzo rzadko, jedynie wtedy, gdy będzie w rozwoju węzłów.
4 Wewnętrzny Błąd JavaScript ocena
Proces uruchamiania węzła źródłowego JavaScript, oceniając funkcja zwraca błąd. Bardzo rzadko, jedynie wtedy, gdy będzie w rozwoju węzłów.
5 błąd krytyczny
V8 w nienaprawialny błąd krytyczny. Zazwyczaj drukować na stderr, treści: Błąd krytyczny
6 Dla funkcji Wyjątek wewnętrzny Handler
Uncaught wyjątek obsługi wyjątku wewnątrz jakoś ustawić na funkcję, a nie można nazwać.
7 Wyjątek wewnętrzny Awaria Handler Run-Time
Przechwycony wyjątek i obsługi wyjątku do obsługi własnych zgłasza wyjątek. Na przykład, jeśli process.on ( "uncaughtException ') lub domain.on (" błąd ") wyrzuca wyjątek.
8 Niewykorzystane
retencja
9 Invalid argument
To może być nieznane parametry lub parametr, który ma żadnej wartości.
10 Awaria wewnętrzna JavaScript Run-Time
Kod źródłowy JavaScript zostanie zgłoszony podczas uruchamiania błędy procesowe Node, bardzo rzadko, tylko wtedy, gdy nie będzie w rozwoju węzła.
12 Nieprawidłowy Debug Argument
--debug zestaw parametrów i / lub --debug-brk, ale wybrała niewłaściwy port.
> 128 Wyjście sygnałowe
Jeśli węzeł odbiera sygnał krytyczny, takich jak SIGKILL lub SIGHUP, wówczas kod wyjścia wynosi 128 Plus kodu sygnałowego. Jest to standardowa praktyka Unix, wysokiej Kod sygnałów wyjściowych.

atrybuty procesowe

Proces ten dostarcza wiele użytecznych właściwości, łatwość interakcji, że możemy lepiej kontrolować system:

Number. Nieruchomości i opis
1 stdout
Standardowy strumień wyjściowy.
2 stderr
Standardowy strumień błędów.
3 stdin
Standardowy strumień wejściowy.
4 argv
argv właściwość zwraca tablicę różnych parametrów na wykonanie skryptu wiersza, gdy kompozycja. Jego pierwszymi członkami są zawsze węzła, drugi człon to nazwa pliku skryptu, a pozostali członkowie są parametry pliku skryptu.
5 execPath
Zwraca bezwzględną ścieżkę obecnych binariach Node wykonywania skryptu.
6 execArgv
Zwraca element tablicy jest pod skrypt wiersza polecenia jest wykonywany między węzłem wykonywalnych parametrów wiersza polecenia pliku skryptu.
7 env
Zwraca obiekt, członkowie obecnej zmiennej środowiskowej powłoki
8 exitCode
Kod wyjścia dla procesu, jeśli proces obdarowany przez process.exit () wyjścia, bez podawania kodu wyjścia.
9 wersja
Wersja Node takie v0.10.18.
10 wersje
Właściwość, która zawiera wersje węzłów i zależności.
11 config
Obiekt, który zawiera bieżący węzeł jest używany do kompilacji plik wykonywalny javascript konfiguracji opcji. Jest to ten sam skrypt run ./configure generowane "config.gypi" plik.
12 PID
Aktualna liczba procesów.
13 tytuł
Nazwa procesu, domyślnie jest "węzeł", można dostosować wartość.
14 łuk
Obecna architektura procesora: "ramię", "ia32" lub "64".
15 platforma
Uruchom program, w którym platforma 'Darwin', 'FreeBSD "," Linux "," SunOS "lub" win32 "
16 mainModule
require.main metod alternatywnych. Inny punkt, jeśli główny moduł został zmieniony w czasie wykonywania, require.main mogą nadal powrócić do starego modułu. Uważa się, że zarówno w odniesieniu do tego samego modułu.

Przykłady

Stwórz main.js plików, kod w następujący sposób:

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

Wykonawczy plik main.js, kod jest w następujący sposób:

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

Instrukcja Metoda porównawcza

Proces udostępnia wiele przydatnych metod ułatwiających lepszą kontrolę nad naszym interaktywnym systemie:

Nie. Sposób i opis
1 abort ()
Spowoduje to wydarzenie węzeł przerwanie spustu. Będzie ona wyjść węzeł i wygenerować plik core.
2 chdir (katalog)
Zmień bieżący katalog roboczy procesu, jeśli operacja nie powiedzie się rzucać.
3 CWD ()
Zwraca katalog roboczy bieżącego procesu
4 exit ([code])
Koniec procesu z określonym kodem. Jeśli pominięty, zostanie użyty kod 0.
5 getgid ()
Uzyskaj identyfikację grupy procesów (patrz getgid (2)). Gdy grupa została nabyta cyfrowy identyfikator, a nie nazwa.
Uwaga: Funkcja ta może być używana (na przykład, niż Windows i Android) tylko na platformach POSIX.
6 setgid (id)
Ustawianie procesu identyfikacji grupy (patrz setgid (2)). Możesz otrzymać identyfikator cyfrowy lub grupie nazwę. Jeśli zostanie określona nazwa grupy rozwiąże zablokować czeka na cyfrowym identyfikatorem.
Uwaga: Funkcja ta może być używana (na przykład, niż Windows i Android) tylko na platformach POSIX.
7 getuid ()
Uzyskaj proces identyfikacji użytkownika (patrz getuid (2)). To jest numeryczny identyfikator użytkownika, a nie nazwa użytkownika.
Uwaga: Funkcja ta może być używana (na przykład, niż Windows i Android) tylko na platformach POSIX.
8 setuid (id)
Proces ustawienie ID użytkownika (patrz setuid (2)). Odbieranie cyfrowy identyfikator lub ciąg znaków nazwy. Jeśli zostanie określona nazwa grupy rozwiąże zablokować czeka na cyfrowym identyfikatorem.
Uwaga: Funkcja ta może być używana (na przykład, niż Windows i Android) tylko na platformach POSIX.
9 getgroups ()
Zwraca ID grupy procesów tablicę. System POSIX nie gwarantuje, że istnieje, ale nie jest node.js gwarantowana.
Uwaga: Funkcja ta może być używana (na przykład, niż Windows i Android) tylko na platformach POSIX.
10 setgroups (grupy)
Set ID grupy procesu. Jest zezwolenie na działalność, wszystko, co trzeba mieć uprawnienia administratora lub posiadają zdolność ustawionego znacznika CAP_SETGID.
Uwaga: Funkcja ta może być używana (na przykład, niż Windows i Android) tylko na platformach POSIX.
11 initgroups (użytkownik, extra_group)
Czytaj / etc / group oraz inicjuje listę dostępu grupy, wszyscy członkowie grupy są położone. Jest zezwolenie na działalność, wszystko, co trzeba mieć uprawnienia administratora lub posiadają zdolność ustawionego znacznika CAP_SETGID.
Uwaga: Funkcja ta może być używana (na przykład, niż Windows i Android) tylko na platformach POSIX.
12 kill (pid [sygnał])
Wysyła sygnał do procesu. PID jest identyfikatorem procesu, a sygnał jest ciąg opisujący sygnał nadawany. Nazwy sygnałów są ciągi takie jak "SIGINT" lub "SIGHUP". Jeżeli zostanie pominięty, to sygnał będzie "SIGTERM".
13 memoryUsage ()
Zwraca obiekt, który opisuje proces używany przez bajtów Stan pamięci węzła.
14 nextTick (callback)
Po zakończeniu obecnej pętli zdarzeń, oddzwanianie funkcji.
15 umask ([maska])
Ustawianie lub odczytać pliku maski procesu. Procesy potomne dziedziczą maskę z procesu macierzystego. Jeśli argument maska ​​jest ważna, to zwraca starą maskę. W przeciwnym wypadku zwraca aktualną maskę.
16 uptime ()
Zwraca liczbę sekund węzeł jest już uruchomiony.
17 hrtime ()
Rozdzielczość Czas bieżącego procesu, w postaci [sekund nanosekund] tablicy. Jest to w odniesieniu do wszelkich zdarzeń przeszłych. Wartość ta nie ma nic wspólnego z datą, w związku z tym nie ma wpływu przesunięć czasowych. Głównym celem jest za pomocą dokładnego odstępu czasu, w celu oceny skuteczności programu.
Zanim będzie można przekazać wynik do bieżącej process.hrtime (), zwróci się do różnicy czasu między nimi, dla odniesienia i pomiaru przedziału czasowego.

Przykłady

Stwórz main.js plików, kod w następujący sposób:

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

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

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

Wykonawczy plik main.js, kod jest w następujący sposób:

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