Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zrozumieć Node.js i Express.js co to jest?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
d4ng
Witajcie, po swoich doświadczeniach w backendzie skłaniam się do czysto frontendowych rozwiązań i szukając pomysłu na RESTowe API wpadłem na Node.js i Express.js tylko nie wiem czy rozumiem ich zastosowanie.. Node to rodzaj hmm rodzaj serwera np XAMPP pomieszany z RESTowym api a Express to coś na kształt backendowego framweorka? jak np php Symfony i ma w sobie różne moduły jak system autoryzacji, system plików? co z bazą danych? Będe wdzięczny jak ktoś mi napisze co za co odpowiada oraz jak to później wystawić tzn normalnie wrzucam na ftp np kei i hula czy muszę mieć specjalny serwer?

Z góry dziękuje za sprostowanie biggrin.gif
Comandeer
node.js to raczej Apache + PHP, czyli po prostu serwer HTTP z wbudowanym językiem. Inna rzecz, że node.js nie jest już backendowy tylko po prostu służy do uruchamiania programów naskrobanych w JS. node.js nie ma nic wspólnego z REST API, nawet nie musi robić za serwer HTTP.

Natomiast express.js to faktycznie framework backendowy, ale w sobie nie ma żadnych modułów wink.gif każdy moduł trzeba osobno zainstalować (tzw. hipermodularyzacja).

Co do bazy: MySQL, Redis, MongoDB, PostgreSQL… jeśli znajdziesz do jakiejś sterownik, to można użyć wink.gif

Ogólnie to zwykle w kontekście node mówi się o MEAN stack (MongoDB, Express.js, Angular.js, node.js), ale podmiana jakiegoś elementu jest banalnie prosta.
d4ng
ok, ale jak to potem wystawić czy normalny serwer np w kei może być?
Comandeer
Raczej vps, bo za serwer robi tutaj sam node.js.
com
node.js to jak w przypadku wspomnianego XAMPP, (który nie jest serwerem a tylko aplikacja skupiająca w sobie skonfigurowana usługi), usługa APACHE, tylko że nie dla php a dla javascript. Wiec nie uruchomisz go na serwerze gdzie jest apache, nginx itp.

Bo potrzebujesz właśnie node.js
athabus
Pozwólcie, że podepnę się pod temat. Czy node.js nadaje się w praktyce do programowania aplikacji desktopowych? Od zawsze siedzę w tematyce serwerowej i czasami przydałoby się napisać jakąś prostą aplikację desktopową, dlatego node.js jest dla mnie kuszące bo trochę znam js.
Nie mam czasu uczyć się programować w nowych językach (nie jest to mój zawód), ale z drugiej strony pytanie, czy aplikacje w node.js mają w ogóle sens jako desktopowe, jak wygląda sprawa z GUI czy dostępem do sprzętu, np. drukarek etc?
com
są tworzone aplikacje desktopowe w node, ale wydajnością to akurat nie może się zbytnio popisać smile.gif co do pytania o drukarki wystarczyło przejrzeć npm https://www.npmjs.com/package/node-printer biggrin.gif
athabus
Wydajność to akurat u mnie nie byłby problem, pytanie tylko czy da się to zrobić po ludzku, czy jest to zrobione na zasadzie phpgtk - czyli sztuka dla sztuki - niby się da, ale nikt tego nie robi, bo to bez sensu. Z drukarkami to tylko przykład, ale rozumiem, że można korzystać z hardwaru komputera bez ograniczeń jakie np. narzuca przeglądarka w standardowym wykorzystaniu javascriptu etc.
redeemer
Edytor Atom chyba jest w CoffeScript + Node.js
Comandeer
@com a tam, nie jest aż tak źle z wydajnością wink.gif W sumie sam node.js jest w tym szybki, najbardziej ciąży Chromium i DOM biggrin.gif
@redemeer Atom stoi na Electron.js

Ogólnie są dwa projekty do tworzenia desktopowych appek przy pomocy tandemu node.js + Chromium: Electron.js i nw.js. Dopóki nie wymaga się super wydajności (czyli piszesz np. komunikator, a nie program do obliczania całek w fizyce kwantowej), to można użyć. Jeśli umiesz tylko JS, a chcesz stworzyć appkę na przeglądarki, desktopy i telefony, to jeszcze dorzuć do tego Cordovę/PhoneGap i można działać wink.gif
com
no tak ale bez tego nie zrobisz biggrin.gif konkurować to to nie może, weźmy przykład atom, muli strasznie, czasem się wiersza na samym starcie itp.
Comandeer
I tak taki Electron.js/nw.js jest o wiele wydajniejszy od Mozillowego XUL-a (tak, GG, patrzę na Ciebie). Natomiast Atom miał po prostu nawalone w DOM równo – przeszli na Reacta, to i przyspieszyło wszystko wink.gif Ale fakt: do Sublime'a to temu daleko. Niemniej przeglądarki są coraz szybsze (w teorii…), więc może kiedyś…

Jak dla mnie tego typu desktop appki to najszybszy sposób przeniesienia aplikacji webowych do trybu offline i zintegrowania ich z systemem operacyjnym. Myślę tutaj o grach przy użyciu WebGL czy właśnie komunikatorach i innych appkach, w których 95% funkcji to odpytywanie REST API. Ba, na upartego można do tego dorobić dość szybkie dodatki w C++ i bawić się przy pomocy ffi choćby, gdzie w gruncie rzeczy JS będzie od interfejsu. W sumie wszystko zależy od use case'u.
com
moje gg skończyło się na qt, wiec nwm. Owszem są coraz szybsze ale to nie jest jeszcze produkcyjne na tyle wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.