Wypróbowywanie środowiska Node.js
W tej lekcji utworzysz i uruchomisz skrypt Node.js.
Uruchamianie kontenera deweloperskiego w przeglądarce
Środowisko kontenera deweloperskiego jest dostępne ze wszystkimi zależnościami wymaganymi do wykonania każdego ćwiczenia w tym projekcie. Kontener deweloperski można uruchomić w usłudze GitHub Codespaces w przeglądarce lub lokalnie przy użyciu programu Visual Studio Code.
Usługa GitHub Codespaces uruchamia kontener deweloperski zarządzany przez usługę GitHub za pomocą programu Visual Studio Code dla sieci Web jako interfejsu użytkownika. W przypadku najprostszego środowiska programistycznego użyj usługi GitHub Codespaces, aby mieć wstępnie zainstalowane odpowiednie narzędzia deweloperskie i zależności, aby ukończyć ten moduł szkoleniowy.
Ważne
Wszystkie konta usługi GitHub mogą korzystać z usługi Codespaces przez maksymalnie 60 godzin bezpłatnych każdego miesiąca z 2 podstawowymi wystąpieniami. Aby uzyskać więcej informacji, zobacz GitHub Codespaces monthly included storage and core hours (Miesięczne miejsca do magazynowania i godzin rdzeni usługi GitHub Codespaces).
Rozpocznij proces tworzenia nowego repozytorium GitHub Codespace
main
wMicrosoftDocs/node-essentials
gałęzi repozytorium GitHub.Na stronie Tworzenie przestrzeni kodu przejrzyj ustawienia konfiguracji przestrzeni kodu, a następnie wybierz pozycję Utwórz przestrzeń kodu.
Poczekaj na uruchomienie przestrzeni kodu. Ten proces uruchamiania może potrwać kilka minut.
Otwórz nowy terminal w przestrzeni kodu.
Tryb REPL środowiska Node.js
Środowisko Node.js ma wbudowany tryb nazywany pętlą odczytu, oceny i wyświetlania (read–eval–print loop, REPL), który jest przydatny do szybkiej oceny kodu i eksperymentowania. Tryb REPL to interakcyjne środowisko konsoli, w którym można wprowadzać kod JavaScript, a środowisko Node.js interpretuje i uruchamia kod, a następnie wyświetla dane wyjściowe.
Tryb REPL środowiska Node.js działa w następujący sposób:
- Odczyt: odczytuje i analizuje dane wejściowe kodu JavaScript użytkownika (lub wyświetla błąd, jeśli kod jest nieprawidłowy).
- Eval: ocenia wprowadzony kod JavaScript.
- Drukuj: drukuje obliczone wyniki.
- Pętla: Pętla i oczekiwanie na wprowadzenie nowego polecenia przez użytkownika (lub kończy działanie, jeśli użytkownik wprowadzi dwukrotnie ctrl-c ).
Aby uruchomić tryb REPL, uruchom node
program w terminalu kontenera deweloperskiego.
Uwaga
Użyj prawym przyciskiem myszy przycisku >Wklej , aby wprowadzić skopiowane polecenie w konsoli REPL.
node
Zostanie otwarte środowisko REPL. Powinien zostać wyświetlony monit REPL:
>
Wprowadź następujący kod w konsoli REPL (kliknij prawym przyciskiem myszy pozycję >Wklej):
console.log('Hello World, from the REPL.')
Ten kod wyświetla komunikat "Hello World, from the REPL". (Witaj, świecie) w konsoli REPL:
Hello World, from the REPL.
Aby zamknąć konsolę REPL, naciśnij dwukrotnie klawisze Ctrl + C.
Tworzenie skryptu środowiska Node.js
Środowisko Node.js obsługuje również uruchamianie kodu z plików.
Utwórz nowy folder o nazwie hello-world w kontenerze deweloperskim.
Otwórz nowy folder w terminalu, klikając prawym przyciskiem myszy nazwę folderu, a następnie wybierając polecenie Otwórz w zintegrowanym terminalu.
W terminalu zainicjuj projekt węzła.
npm init -y
Zainstaluj pakiet Node,
node-fetch
aby wykonywać asynchroniczne żądania HTTP.npm install node-fetch
package.json
Otwórz plik i dodaj następującą właściwość, aby zezwolić na async/await najwyższego poziomu."type":"module",
Utwórz plik o nazwie index.js w nowym folderze.
Skopiuj następujący kod do pliku index.js :
console.log('Hello World, from a script file.');
W terminalu wprowadź
node
polecenie, a następnie nazwę pliku index.js:node index.js
Powinny zostać wyświetlone następujące dane wyjściowe:
Hello World, from a script file.
Właśnie udało Ci się uruchomić swój pierwszy kod JavaScript Node.js.
- Pytanie: Czy console.log synchroniczne lub asynchroniczne?
- Odpowiedź: Metoda jest wyświetlana
console.log
w programowania w celu natychmiastowego wykonania i dlatego przyjmuje się, że jest asynchronizuj. Nie ma gwarancji zachowania asynchronicznego dla tej metody, więc należy ją uznać za synchroniczną. Ponieważ wykonywanie kodu może blokować do momentu zakończenia metody, należy pamiętać o zachowaniuconsole.log
console.log
instrukcji w kodzie w środowisku produkcyjnym.
Dodawanie funkcji asynchronicznej najwyższego poziomu
Poniższy kod asynchroniczny najwyższego poziomu żąda źródła danych HTTP JSON, a następnie wyświetla go.
Dodaj następujący kod do pliku,
index.js
aby utworzyć asynchroniczne żądanie HTTP:import fetch from 'node-fetch'; console.log(`start`); try { const res = await fetch('https://github.com/MicrosoftDocs/node-essentials'); console.log('statusCode:', res.status); } catch (error) { console.log(`error: ${error}`); } console.log(`end`);
Metoda
https.get
wysyła żądanie HTTP do witryny internetowej Node.js i zwraca odpowiedź. Metodaget
przyjmuje dwa parametry: adres URL żądania i funkcję wywołania zwrotnego wywoływaną po odebraniu odpowiedzi. Funkcja wywołania zwrotnego przyjmuje jeden parametr ,res
czyli obiekt odpowiedzi.Uruchom ponownie aplikację:
node index.js
Kolejność dzienników konsoli jest następująca:
start statusCode: 200 end
Z danych wyjściowych możesz zobaczyć pętlę zdarzeń w akcji. Metoda HTTP jest wywoływana i umieszczana w kolejce zadań, czekając na jej powrót. Pętla zdarzeń przyjmuje następne zadanie, czyli metodę console.log.
Zatrzymywanie kontenera deweloperskiego
Usunięcie środowiska Usługi GitHub Codespaces gwarantuje, że możesz zmaksymalizować ilość bezpłatnych godzin na godziny korzystania z konta.
Ważne
Aby uzyskać więcej informacji na temat uprawnień konta usługi GitHub, zobacz Artykuł GitHub Codespaces monthly included storage and core hours (Miesięczne miejsca do magazynowania i godzin rdzeni w usłudze GitHub).
Zaloguj się do pulpitu nawigacyjnego usługi GitHub Codespaces (https://github.com/codespaces).
Znajdź aktualnie uruchomione środowisko Codespaces pochodzące z
MicrosoftDocs/node-essentials
repozytorium GitHub.Otwórz menu kontekstowe dla przestrzeni kodu i wybierz pozycję Usuń.