Pytanie Jak zdecydować, kiedy korzystać z Node.js?


Jestem nowicjuszem w tego rodzaju sprawach, ale ostatnio słyszę dużo o tym, jak dobrze Node.js jest. Biorąc pod uwagę, jak bardzo lubię pracować z jQuery i JavaScript w ogóle, nie mogę przestać zastanawiać się, jak zdecydować, kiedy korzystać z Node.js. Aplikacja internetowa, którą mam na myśli, to coś w stylu Bitowy - bierze trochę treści, archiwizuje ją.

Od wszystkich prac domowych, które robiłem w ciągu ostatnich kilku dni, otrzymałem następujące informacje. Node.js

  • to narzędzie wiersza poleceń, które może działać jako zwykły serwer WWW i pozwala uruchamiać programy JavaScript
  • wykorzystuje świetny Silnik JavaScript V8
  • jest bardzo dobry, gdy musisz zrobić kilka rzeczy w tym samym czasie
  • jest oparty na wydarzeniach, więc wszystko to wspaniałe Ajaxpodobne rzeczy można zrobić po stronie serwera
  • pozwala nam udostępniać kod między przeglądarką a zapleczem
  • pozwala nam rozmawiać z MySQL

Niektóre źródła, z którymi się zetknąłem, to:

Biorąc pod uwagę, że Node.js można uruchomić niemal natychmiast po uruchomieniu Amazon EC2 Instancje próbuję zrozumieć, jakiego rodzaju problemy wymagają Node.js w przeciwieństwie do któregokolwiek z potężnych królów takich jak PHP, Pyton i Rubin. Rozumiem, że to naprawdę zależy od wiedzy specjalistycznej na temat danego języka, ale moje pytanie bardziej pasuje do ogólnej kategorii: Kiedy należy korzystać z określonego schematu i jakiego rodzaju problemów jest on szczególnie odpowiedni?


2200
2018-02-21 05:20


pochodzenie


To pytanie jest omawiane na meta (meta.stackoverflow.com/q/332386/497418). - zzzzBov


Odpowiedzi:


Zrobiłeś świetną robotę podsumowując, co jest niesamowite w Node.js. Mam wrażenie, że Node.js jest szczególnie odpowiedni dla aplikacji, w których chcesz utrzymywać stałe połączenie z przeglądarki z powrotem na serwer. Korzystanie z techniki znanej jako "długi głosowanie", możesz napisać aplikację, która wysyła aktualizacje do użytkownika w czasie rzeczywistym. Wykonywanie długich ankiet na wielu gigantach internetu, takich jak Ruby on Rails lub Django, spowodowałoby ogromne obciążenie serwera, ponieważ każdy aktywny klient zjada jeden proces serwera. Ta sytuacja wynosi a tarpit atak. Kiedy używasz czegoś takiego jak Node.js, serwer nie musi utrzymywać osobnych wątków dla każdego otwartego połączenia.

Oznacza to, że możesz utworzyć przeglądarka internetowa oparta na czacie w Node.js, który prawie nie potrzebuje zasobów systemowych, aby obsłużyć wielu klientów. Za każdym razem, gdy chcesz wykonać ten rodzaj długiego sondowania, Node.js jest świetną opcją.

Warto wspomnieć, że Ruby i Python mają narzędzia do robienia tego typu rzeczy (eventmachine i skręcone, odpowiednio), ale Node.js robi to wyjątkowo dobrze i od podstaw. JavaScript jest wyjątkowo dobrze umiejscowiony w modelu współbieżności opartym na oddzwanianiu i jest tutaj doskonały. Ponadto możliwość serializowania i deserializacji z JSON natywnym zarówno dla klienta, jak i serwera jest całkiem niezła.

Czekam z niecierpliwością na inne odpowiedzi tutaj, to jest fantastyczne pytanie.

Warto podkreślić, że Node.js świetnie sprawdza się również w sytuacjach, w których będziesz wykorzystywał wiele kodu w luce między klientem a serwerem. The Struktura Meteor czyni to naprawdę łatwym, a wielu ludzi sugeruje, że może to być przyszłość tworzenia stron internetowych. Mogę powiedzieć z doświadczenia, że ​​pisanie kodu w Meteorze to dużo zabawy, a duża część tego polega na mniejszym zastanawianiu się, w jaki sposób zamierzasz zmienić strukturę danych, aby kod działający w przeglądarce mógł z łatwością manipulować nim i przekazywać go z powrotem.

Oto artykuł na temat Pyramid i long-pollingu, który okazuje się bardzo łatwy w konfiguracji przy niewielkiej pomocy z gevent: TicTacToe i Long Polling z Pyramid.


1359
2018-02-21 05:30



Tak, myślę, że bardzo ważne jest, aby uważać, że "plik node.js jest szczególnie odpowiedni dla aplikacji, które wymagają ciągłego połączenia z przeglądarki z powrotem do serwera. - takie jak programy czatowe lub gry interaktywne "Jeśli ktoś tylko tworzy aplikację, która niekoniecznie potrzebuje komunikacji między użytkownikiem a serwerem, rozwijanie jej za pomocą innych frameworków byłoby w porządku i zajmie znacznie mniej czasu. - user482594
Dzięki za to ... Świetna Q i A ;-) Myślę też o tym, jeśli chodzi o opanowanie jednej świetnej technologii do przodu i do tyłu na kilka różnych;) - Stokedout
Dlaczego warto korzystać z długiego sondowania? Co się stało z przyszłością i gniazda? - hitautodestruct
Moja krótka odpowiedź to proces w tle. Żądanie i odpowiedź (w tym reszta API) wszystko można osiągnąć za pomocą dowolnego innego języka i serwera. Tak więc dla tych, którzy myślą o konwersji swoich projektów internetowych w węźle. Pomyśl jeszcze raz o tym samym! Użyj węzła jako procesu działającego w tle, takiego jak czytanie wiadomości e-mail z imapem, przetwarzanie obrazu, przesyłanie plików do chmury lub dowolne długie lub nie kończące się procesy, które w większości są zorientowane na zdarzenia ... - Vikas


Wierzę, że Node.js najlepiej nadaje się do aplikacji czasu rzeczywistego: gier online, narzędzi do współpracy, pokojów rozmów lub czegokolwiek, co użytkownik (lub robot? Lub czujnik?) Robi z aplikacją musi natychmiast zobaczyć inny użytkownik, bez odświeżania strony.

Powinienem także wspomnieć, że Socket.IO w połączeniu z Node.js zredukuje twoje opóźnienie w czasie rzeczywistym nawet bardziej niż to, co jest możliwe przy długim pollingu. Socket.IO powróci do długiego sondowania jako najgorszy scenariusz, a zamiast tego użyje gniazd internetowych lub Flasha, jeśli są dostępne.

Ale powinienem również wspomnieć, że prawie każdą sytuację, w której kod może blokować ze względu na wątki, można lepiej rozwiązać za pomocą Node.js. Lub w dowolnej sytuacji, w której aplikacja wymaga obsługi zdarzeń.

Ryan Dahl powiedział także w rozmowie, że kiedyś brałem udział w tym, że testy Node.js ściśle rywalizują z Nginx o regularne stare żądania HTTP. Jeśli więc budujemy z Node.js, możemy dość skutecznie obsługiwać nasze normalne zasoby, a kiedy potrzebujemy elementów sterowanych zdarzeniami, jest on gotowy do obsługi.

Dodatkowo cały czas to JavaScript. Lingua Franca na całym stosie.


410
2018-02-21 06:43



Tylko obserwacja od kogoś przełączającego się .Net i Node, Różne języki dla różnych obszarów systemu bardzo pomagają przy przełączaniu kontekstu. Kiedy patrzę na JavaScript, pracuję w kliencie, C # oznacza serwer aplikacji, SQL = baza danych. Pracując w JavaScript przez cały czas, znalazłem się mylący warstwy lub po prostu dłużej do przełączania kontekstu. Jest to prawdopodobnie artefakt pracy na stosie .NET przez cały dzień i Noding w nocy, ale to robi różnicę. - Michael Blackburn
Interesujące jest to, że praktykowanie międzykulturowych osób zmieniających dialekty podczas przemieszczania się pomiędzy kulturami mainstream i natywnymi nazywa się "przełączaniem kodu". - Michael Blackburn
Niedawno zastanawiałem się nad tym, jak mogę nadać różne kolory moim różnym .js pliki jakoś. Zielony dla klienta, niebieski dla serwera. Sam ciągle się "gubię". - AJB
Najlepsza odpowiedź. Na przykład node.js jest fantastyczny dla peer-to-peer. - cpugourou


Powody, dla których warto korzystać z NodeJS:

  • Działa Javascript, więc możesz użyć taki sam język na serwerze i kliencie, a nawet udostępniać niektóre kody między nimi (np. do sprawdzania poprawności formularza lub wyświetlania widoków po obu stronach).

  • The jednowątkowy sterowany zdarzeniami system szybki nawet przy obsłudze wielu żądań naraz, a także prostych w porównaniu do tradycyjnych wielowątkowych Jawa lub ROR.

  • Coraz większa pula pakiety dostępne za pośrednictwem NPM, w tym biblioteki / moduły po stronie klienta i po stronie serwera, a także narzędzia wiersza polecenia do tworzenia stron internetowych. Większość z nich jest wygodnie hostowana na github, gdzie czasami możesz zgłosić problem i znaleźć go w ciągu kilku godzin! Fajnie jest mieć wszystko pod jednym dachem, ze standardowym raportowaniem problemów i łatwym rozwidleniem.

  • Stało się standardowym środowiskiem defacto, w którym można uruchomić Narzędzia związane z Javascriptem i inne narzędzia sieciowe, w tym biegaczy zadań, minifilmów, beautifiers, linters, preprocesorów, bundlers i analizatorów.

  • Wydaje się całkiem odpowiedni do prototypowania, zwinnego rozwoju i szybka iteracja produktu.

Powody nie korzystać z NodeJS:

  • Działa Javascript, który nie ma sprawdzania typu podczas kompilacji. Dla dużych, złożonych krytyczne dla bezpieczeństwa systemy lub projekty, w tym współpracę między różnymi organizacjami, język, który zachęca interfejsy kontraktowe i zapewnia sprawdzanie typu statycznego może zaoszczędzić trochę czasu na debugowanie (i eksplozje) na dłuższą metę. (Chociaż JVM utknęło null, więc użyj Haskella do swoich reaktorów jądrowych.)

  • Do tego wiele pakietów w NPM jest trochę surowyi wciąż w fazie szybkiego rozwoju. Niektóre biblioteki dla starszych frameworków przeszły dekadę testowania i naprawiania błędów i są bardzo stabilny do tego czasu. Npmjs.org nie ma mechanizmu oceny pakietów, co doprowadziło do rozprzestrzenienia się pakietów wykonujących mniej więcej to samo, z czego duży odsetek nie jest już utrzymywany.

  • Zagnieżdżone piekło oddzwaniania. (Oczywiście, że są 20 różnych rozwiązań do tego...)

  • Rosnąca pula pakietów może spowodować pojawienie się jednego projektu NodeJS radykalnie różne od następnego. Istnieje duża różnorodność implementacji ze względu na ogromną liczbę dostępnych opcji (np. Express /Sails.js/Meteor/derby). Może to czasami utrudnić nowemu programistce wskoczenie do projektu węzła. Porównaj to z Szyny programista przystępujący do istniejącego projektu: powinien on być w stanie dość szybko zapoznać się z aplikacją, ponieważ wszystkie aplikacje Railsowe są zachęcane do używania podobna struktura.

  • Radzenie sobie z plikami może być trochę uciążliwe. Rzeczy, które są trywialne w innych językach, np. Czytanie linii z pliku tekstowego, są dość dziwne, aby zrobić z Node.js na tym pytanie StackOverflow z ponad 80 upvotes. Jest nie ma prostego sposobu na odczyt jednego rekordu na raz z pliku CSV. Itp.

Uwielbiam NodeJS, jest szybki, dziki i zabawny, ale obawiam się, że ma małe zainteresowanie dowodową poprawnością. Miejmy nadzieję, że w końcu możemy połączyć najlepsze z obu światów. Bardzo chciałbym zobaczyć, co zastąpi Węzeł w przyszłości ... :)


209
2017-11-25 21:47



@ Nane Tak, myślę, że mogą rozwiązać ten problem, jednak musisz wtedy ogranicz się do korzystania tylko z bibliotek napisanych w językach typu "safe" lub zaakceptuj to cała twoja baza kodów jest statycznie wpisane. Ale jeden argument brzmi: skoro powinieneś pisać dobre testy dla twojego kodu, niezależnie od języka, a następnie twojego poziom zaufania powinien być równy nawet dla dynamicznie wpisanego kodu. Jeśli przyjmiemy ten argument, wówczas zalety silnego pisania będą ograniczone do wspomagania rozwoju / debugowania czasu, sprawdzalności i optymalizacja. - joeytwiddle
@kervin, zgadzam się, że niektóre benchmarki byłyby świetne, ale byłem rozczarowany tym, co udało mi się znaleźć w Internecie. Niektórzy twierdzą, że wydajność .NET jest porównywalny do węzła, ale ważne jest to, co faktycznie robisz. Węzeł może być świetny w dostarczaniu małych komunikatów z wieloma współbieżnymi połączeniami, ale nie jest tak wielki dla ciężkich obliczeń matematycznych. Dobre porównanie wydajności wymagałoby przetestowania różnych sytuacji. - joeytwiddle
@joeytwiddle nie ma takich rzeczy jak Dokumentacja pomoc Node.js, jeśli chodzi o obsługę większych złożonych programów i statyczne sprawdzanie typecheck? - CodeMonkey
@joeytwiddle za to, co jest warte, możesz użyć stillmaintained.com aby ustalić, czy pakiet NPM jest nadal utrzymywany (jak większość jest na Githubie). Dodatkowo, npm search i npm show wyświetli datę ostatniego wydania paczki. - Dan Pantry
Porównując szyny do węzła, mylycie platformę ze strukturą. Rails to framework dla Ruby, podobnie jak Sails i meteor są frameworkami dla Javascript. - BonsaiOak


Aby było krótko:

Node.js jest dobrze dostosowany do aplikacji, które mają wiele współbieżnych połączeń, a każde żądanie wymaga tylko bardzo niewielu cykli procesora, ponieważ pętla zdarzeń (ze wszystkimi innymi klientami) jest blokowana podczas wykonywania funkcji.

Dobry artykuł na temat pętli zdarzeń w Node.js to Blog techniczny Mixu: Omówienie pętli zdarzeń node.js.


208
2018-01-15 01:48





Mam jeden przykład z prawdziwego świata, w którym użyłem Node.js. Firma, w której pracuję, ma jednego klienta, który chciał mieć prostą statyczną stronę HTML. Ta strona służy do sprzedaży jednego przedmiotu za pomocą PayPal a klient także chciał mieć licznik, który pokazuje ilość sprzedanych przedmiotów. Klient spodziewał się dużej ilości odwiedzających tę stronę. Postanowiłem zrobić licznik za pomocą Node.js i Express.js struktura.

Aplikacja Node.js była prosta. Uzyskaj kwotę sprzedanych przedmiotów od Redis bazy danych, zwiększ licznik, gdy przedmiot jest sprzedawany i podawaj wartość licznika użytkownikom za pośrednictwem API.

Niektóre powody, dla których zdecydowałem się użyć Node.js w tym przypadku

  1. Jest bardzo lekki i szybki. W ciągu trzech tygodni odbyło się ponad 200 000 odwiedzin na tej stronie, a minimalne zasoby serwera były w stanie obsłużyć to wszystko.
  2. Licznik jest naprawdę łatwy do wykonania w czasie rzeczywistym.
  3. Node.js był łatwy do skonfigurowania.
  4. Istnieje wiele modułów dostępnych za darmo. Na przykład znalazłem moduł Node.js dla PayPal.

W tym przypadku Node.js był świetnym wyborem.


127
2018-05-31 06:34



Jak organizujesz coś takiego? Czy musisz wtedy skonfigurować nodejs na serwerze produkcyjnym? W Linuksie? - Notflip
Istnieje kilka PaaS, takich jak nodejitsu i Heroku. Lub rzeczywiście możesz ustawić nodejs na pudełku linux, tj. Z amazon ec2. widzieć: lauradhamilton.com/... - Sam Ames
200 000 odwiedzin w ciągu 1 814 400 sekund. Nie ma znaczenia. Nawet bash może obsłużyć tyle żądań, na najwolniejszym serwerze. Scratch server. Najwolniejsza maszyna wirtualna. - Tiberiu-Ionuț Stan


Najważniejsze powody, aby rozpocząć kolejny projekt przy użyciu węzła ...

  • Wszyscy najfajniejsi kolesie są w to ... więc to musi bądź zabawny.
  • Możesz się spotkać w chłodniejszej wersji i mieć wiele przygód z węzłem, by się chwalić.
  • Jesteś pinny, jeśli chodzi o koszty hostingu w chmurze.
  • Zrobiłem to z Railsami
  • Nienawidzisz wdrożeń IIS
  • Twoja stara praca w IT staje się nudna i chcesz, abyś był w nowym, błyszczącym zestawieniu.

Czego oczekiwać ...

  • Poczujesz się bezpiecznie z Expressem bez żadnego nadużywania serwera, którego nigdy nie potrzebujesz.
  • Działa jak rakieta i dobrze się skaluje.
  • Marzysz o tym. Zainstalowałeś to. Repo pakiet pakietów npmjs.org jest największym ekosystemem bibliotek open source na świecie.
  • Twój mózg dostanie czas wypaczony w krainie zagnieżdżonych callbacków ...
  • ... dopóki nie nauczysz się zachować swojego Obietnice.
  • Sequelize i Paszport jesteście nowymi przyjaciółmi API.
  • Debugowanie głównie kodu asynchronicznego dostanie ... ciekawy .
  • Czas na opanowanie wszystkich Noderów Maszynopis.

Kto tego używa?


105
2018-06-12 13:24



Tak, mogłem odpowiedzieć na to pytanie w tradycyjny sposób. Myślę, że mam odpowiednie kwalifikacje, ale większość z nich została już powiedziane i pomyślałem, że jakaś lekkomyślna zabawa przełamie monotonię. Regularnie udzielam odpowiedzi technicznych na inne pytania. - Tony O'Hagan
+1 "Debugowanie głównie kodu asynchronicznego stanie się bardzo interesujące." - Jackson
zagnieżdżone wywołania zwrotne można uniknąć, używając generatorów ES6 dla kodu asynchronicznego - refactor
@CleanCrispCode: Tak, rzeczywiście! ES6 przyjęła styl C # async/await więc teraz możemy wdrożyć znacznie czystszy asynchroniczny kod Node, który obsługuje również tradycyjne try/catch. W 2016/17 kodery JS przełączają się na ES6. - Tony O'Hagan
dziesięć tysięcy razy to "Poczujesz się bezpiecznie z Expressem bez całego serwera, którego nigdy nie potrzebujesz" - Simone Poggi


Nie ma to jak Silver Bullet. Wszystko wiąże się z pewnymi kosztami. To tak, jakbyś jadł tłuste jedzenie, naraziłbyś na szwank swoje zdrowie, a zdrowa żywność nie pochodzi z przyprawami jak tłuste jedzenie. To indywidualny wybór, czy chcą zdrowia, czy przypraw, jak w swoim jedzeniu. Ten sam sposób, w jaki Node.js rozważa zastosowanie w konkretnym scenariuszu. Jeśli Twoja aplikacja nie pasuje do tego scenariusza, nie powinieneś jej brać pod uwagę przy tworzeniu aplikacji. Po prostu myślę tak samo:

Kiedy używać Node.JS

  1. Jeśli twój kod po stronie serwera wymaga bardzo niewielu cykli procesora. W innym świecie wykonujesz operację bez blokowania i nie masz ciężkiego algorytmu / zadania, który zużywa dużo cykli procesora.
  2. Jeśli korzystasz z JavaScript back ground i wygodnie w pisaniu Single Threaded code tak samo jak JS klienta.

Kiedy NIE używać Node.JS

  1. Żądanie serwera zależy od intensywnego algorytmu zużywającego procesor / zadanie.

Analiza skalowalności za pomocą Node.JS

  1. Sam Node.JS nie wykorzystuje całego rdzenia bazowego systemu i domyślnie jest pojedynczy wątek, musisz napisać własną logikę, aby wykorzystać wielordzeniowy procesor i uczynić go wielowątkowym.

Alternatywy Node.JS

Istnieją jednak inne opcje zamiast Node.JS Vert.x wydaje się być dość obiecująca i ma wiele dodatkowych funkcji, takich jak poligot i lepsza skalowalność.


60
2018-04-05 17:17



Nie jestem pewien "Jeśli twoje żądanie po stronie serwera obejmuje blokowanie operacji takich jak File IO lub Socket IO" wymienionych w "Kiedy NIE używać". Jeśli moje zrozumienie jest słuszne, jednym z atutów pliku node.js jest to, że posiada potężne asynchroniczne środki do obsługi IO bez blokowania. Tak więc Node.js może być postrzegany jako "lekarstwo" na blokowanie IO. - Ondra Peterka
@OndraPeterka: Masz rację, że Node.js jest na tyle skuteczny, że blokuje serwer IO, jednak jeśli twoja aplikacja obsługi żądań na własnym serwerze wykonuje blokujące połączenie z inną usługą sieciową / operacją na pliku, Node.js tu nie pomoże. To nie blokuje IO tylko dla przychodzących żądań do serwera, ale nie dla wychodzących żądań z aplikacji obsługi żądań aplikacji. - ajay
@ajay z nodejs.org mówią "nie blokujące wejścia / wyjścia", sprawdź "NIE" 2 i 3. - Omar Al-Ithawi
przy obecnej wersji węzeł obsługuje obsługę wielu rdzeni za pomocą klastra. To naprawdę zwiększa wydajność aplikacji węzła co najmniej dwa razy. Wydaje mi się jednak, że wydajność powinna być większa niż dwukrotność stablizacji biblioteki klastrów. - Nam Nguyen
Możesz użyć node.js do ciężkich obliczeń. Posługiwać się fork. Widzieć stackoverflow.com/questions/9546225/.... Węzeł bardzo dobrze radzi sobie z wieloma rdzeniami z cluster moduł. nodejs.org/api/cluster.html - Jess


Kolejna wspaniała rzecz Myślę Nikt nie wspomniał o Node.js to niesamowita społeczność, system zarządzania pakietami (npm) i ilość modułów, które można włączyć, po prostu włączając je do pliku package.json.


41
2018-06-06 17:42



Pakiety te są względnie świeże, więc mają możliwość sprawdzenia, czy są zgodne z najnowszymi standardami sieci. - joeytwiddle
Z całym szacunkiem, wiele pakietów na npm jest strasznych, ponieważ npm nie ma mechanizmu do oceny pakietów. Perspektywa od CPAN ktoś? - Dan Dascalescu
Szkoda, że ​​żadna z bibliotek websockets nie spełnia specyfikacji rfc 6455. fanboyi node.js są głusi, głupi i ślepi, gdy ten fakt jest podany. - r3wt
Nie wiem, kiedy napisałeś komentarz, ale od tej pory biblioteka ws obsługuje tę specyfikację - Jonathan Gray


Mój kawałek: nodejs świetnie nadaje się do tworzenia systemów czasu rzeczywistego, takich jak analityka, aplikacje do czatu, apis, serwery reklam itp. Do diabła, zrobiłem moją pierwszą aplikację do czatu, używając nodejs i socket.io w ciągu 2 godzin, a także podczas egzaminu tydzień!

Edytować

Minęło kilka lat, odkąd zacząłem używać nodejs i używałem go do robienia wielu różnych rzeczy, w tym statycznych serwerów plików, prostych analiz, aplikacji do czatów i wielu innych. To jest moje zdanie, kiedy używać nodejs

Kiedy użyć

Podczas tworzenia systemu kładącego nacisk na współbieżność i szybkość.

  • Serwery tylko gniazdka takie jak aplikacje na czacie, aplikacje irc itp.
  • Sieci społecznościowe, które kładą nacisk na zasoby w czasie rzeczywistym, takie jak geolokalizacja, strumień wideo, strumień audio itp.
  • Obsługa niewielkich porcji danych jest naprawdę szybka, jak aplikacja internetowa do analizy.
  • Jako wystawiający tylko api REST.

Kiedy nie używać

Jest to bardzo wszechstronny serwer internetowy, dzięki czemu można go używać w dowolnym miejscu, ale prawdopodobnie nie w tych miejscach.

  • Proste blogi i statyczne witryny.
  • Podobnie jak statyczny serwer plików.

Miej na uwadze, że po prostu czepiam się. W przypadku statycznych serwerów plików apache jest lepszy głównie dlatego, że jest powszechnie dostępny. Społeczność nodejs stała się większa i dojrzała przez lata i można bezpiecznie powiedzieć, że nodejs może być używany niemal wszędzie, jeśli masz wybór hostingu.


37
2018-05-06 13:52



Proste blogi wciąż mogą korzystać z Node.js. W przypadku udostępniania plików statycznych nadal można korzystać z Node.js, a jeśli wzrasta obciążenie, wystarczy dodać przed nim serwer proxy odwrotnego Nginx, zgodnie z aktualnymi najlepszymi praktykami. Serwer httpd Apache to dinozaur, który umiera - patrz ta ankieta Netcraft. - Endrju
Powiedziałbym inaczej - spójrz na ghost.org, wygląda niesamowicie i jest zbudowany na NodeJs - współpraca, edycja artykułów w czasie rzeczywistym. Ponadto, tworząc prostą stronę w NodeJs, powiedzmy, używając sailsjs.org, jest łatwy, szybki i nie musisz martwić się uczeniem się języków programowania po stronie serwera - Bery


Może być używany gdzie

  • Aplikacje, które są silnie sterowane zdarzeniami i są mocno związane z I / O
  • Aplikacje obsługujące dużą liczbę połączeń z innymi systemami
  • Aplikacje działające w czasie rzeczywistym (Node.js zostało zaprojektowane od podstaw w czasie rzeczywistym i łatwe używać.)
  • Aplikacje, które żonglują wykresami informacji płynących do iz innych źródeł
  • Wysoki ruch, skalowalne aplikacje
  • Aplikacje mobilne, które muszą rozmawiać z platformowym interfejsem API i bazą danych, bez konieczności wykonywania dużej ilości danych analityka
  • Twórz aplikacje sieciowe
  • Aplikacje, które często muszą rozmawiać z back-endem

W przypadku telefonów komórkowych firmy prime-time używały Node.js do swoich rozwiązań mobilnych. Sprawdź, dlaczego?

LinkedInjest wybitnym użytkownikiem. Cały ich stos mobilny jest zbudowany na Node.js. Poszli od uruchomienia 15 serwerów z 15 instancjami na każdej maszynie fizycznej, do zaledwie 4 instancji - które mogą obsłużyć podwójny ruch!

eBay uruchomiono ql.io, język zapytań internetowych dla API HTTP, który wykorzystuje Node.js jako stos środowiska wykonawczego. Byli w stanie dostroić zwykłą stację roboczą Ubuntu o jakości programistycznej, aby obsłużyć ponad 120 000 aktywnych połączeń na proces node.js, przy każdym połączeniu zużywającym około 2kB pamięci!

Walmart przeprojektował swoją aplikację mobilną, aby korzystać z Node.js i popchnął przetwarzanie JavaScriptu na serwer.

Przeczytaj więcej na: http://www.pixelatingbits.com/a-closer-look-at-mobile-app-development-with-node-js/


30
2017-07-03 07:17