Najlepszy samouczek Node.js globalnego obiektu W 2024 r. W tym samouczku możesz dowiedzieć się Globalne obiekty i zmienne globalne,__filename,__dirname,setTimeout (cb, ms),clearTimeout (t),setInterval (cb, ms),konsola,proces,
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.
Najbardziej fundamentalną rolę w globalnej zmiennej globalnej gospodarza. Z definicji ECMAScript spełniać następujące warunki są zmienne globalne:
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 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.
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 reprezentuje aktualnie wykonywany skrypt katalogu znajduje.
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) 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.
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) jest używany, aby zatrzymać funkcję globalnego przed przekazaniem setTimeout (), aby utworzyć czasomierza.Parametrt według funkcji setTimeout (), aby utworzyć kalkulatora.
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) 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.
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.jsHello, World! Hello, World! Hello, World! Hello, World! Hello, World! plplpl
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 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.
Poniżej znajduje się obiekt konsoli:
Nie. | Sposób i opis |
---|---|
1 | console.log ([Dane] [pl. ]) 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] [pl. ]) 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] [pl. ]) Komunikat o błędach. Konsola zostanie wyświetlona na czerwono, gdy wystąpi błąd widelec. |
4 | console.warn ([Dane] [pl. ]) 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 [pl.]) 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ść] [ pl.]) 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 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.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 Objectpljs (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)
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 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. |
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 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. |
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. |
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
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. |
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 }