NODE.JS #02 – HELLO WORLD! PIERWSZA APLIKACJA

Dziś zajmiemy się pisaniem naszej pierwszej aplikacji typu “Hello World!”. Jeśli nie macie potrzebnego oprogramowania to zachęcam do zapoznania z pierwszym wpisem tej serii, gdzie pokazałem jak zainstalować niezbędne oprogramowanie oraz jakie edytory polecam.

Konsola

Node.js udostępnia konsolę w której możemy testować pisany kod, uruchamiamy ją wpisując w konsoli node bez dodatkowych parametrów

Jak widać powyżej możemy wykonywać proste operacje, a tym samym testować kod który tworzymy. Tylko skąd się tam wzięły wartości “undefined” ? Otóż konsola w której pracujemy domyślnie zwraca wartość z wpisanego polecenia dlatego przy definiowaniu zmiennych mamy “undefined”. Podobnie przy wywołaniu console.log, które niczego nie zwraca.

Konsola node jest analogiczna do tej którą znajdziemy w przeglądarce Chrome.

Jednak nie mamy dostępu do dokładnie tych samych rzeczy w obu konsolach np. w Chrome odwołamy się do obiektu window w node nie, w node odwołamy się do process w Chrome nie itd.

Wychodzimy z konsoli wpisując .exit. Użyteczność konsoli jest raczej mała i raczej nie będę jej tutaj wykorzystywał, ale warto wiedzieć że coś takiego jest.

Dla nieco bardziej leniwych przygotowałem filmik 🙂

console.log

Zanim zaczniemy pisać aplikację zapoznamy się z jednym modułem, który będziemy często wykorzystywać podczas pisania aplikacji. Mowa tutaj o module Console, w odróżnieniu od większości modułów nie musimy go importować, jest to związane z faktem tworzenia przez node globalnej konsoli do której mamy dostęp przez zmienną console.

Moduł ten służy do wypisywania informacji w strumieniach, co robimy poprzez dostarczone metody:

  • console.log – wypisuje dane na stdout (standardowy strumień wyjścia),
  • console.info – alias dla console.log,
  • console.error – wypisuje dane na stderr (standardowy strumień błędów),
  • console.warn – alias dla console.error

Niezależnie której metody użyjemy w konsoli nie zauważymy żadnej różnicy.

Jednak różnica jest i wiąże się ze strumieniami na które są wysyłane dane. Otóż aplikacje mają do dyspozycji dwa strumienie wyjścia i błędów, uruchamiając konsolę nie zdefiniowaliśmy gdzie te strumienie mają być zapisywane w takim przypadku są wyświetlane w konsoli. Zobaczmy co będzie, gdy zdefiniujemy miejsce zapisu danych ze strumieni.

Standardowy strumień wyjścia przekierowujemy wpisując 1>nazwa_pliku, zaś strumień błędów 2>nazwa_pliku. Czyli nasze polecenie uruchamiające konsolę node będzie wyglądało następująco:

node 1>stdout.log 2>stderr.log

I teraz małe zaskoczenie, wygląda jakby konsola się nie uruchomiła bowiem ni pokazał się znak “>”.

Zapewniam was że wszystko jest OK 😉 Otóż owy brak wynika to z faktu, że znak ten został wypisany na standardowy strumień wyjścia przez co został zapisany do pliku stdout.log. Podejrzyjmy zawartość pliku

Jest nasz zagubiony znak 😉 Przy tak uruchomionej konsoli wszystko co wpiszemy i zwróci dane zostanie zapisane do pliku. Zobaczmy jak wygląda zapisywanie danych przez moduł console do plików:

Zawartość pliku stdout.log

Zawartość pliku stderr.log

Wszystko zostało zapisane według oczekiwań. Oczywiście to nie są jedyne możliwości konsoli o wszystkim możecie przeczytać w dokumentacji (dla wersji 6.10.1 – LTS).

Hello World!

Czas napisać pierwszą aplikację typu “hello world”. Zaczynamy od założenia katalogu i utworzenia pliku o nazwie “hello-world.js” będzie on zawierał kod naszej pierwszej aplikacji.

console.log('Hello World!')

Znamy już console.log i wiemy że jedyne co aplikacja zrobi to się z nami przywita wyświetlając komunikat w konsoli “Hello World!”.

Jak uruchomić aplikację ?

Nic prostszego, wpisujemy node oraz nazwę pliku, który ma zostać uruchomiony.

Wpisywanie rozszerzenia “.js” jest opcjonalne i można uruchamiać aplikację wpisując jedynie node hello-world

 

GitHub – kod aplikacji

Kod aplikacji oraz wszelkie materiały możecie znaleźć na GitHub-ie

Close