2013-05-08 15 views
29

Info: Jestem bardzo nowy dla node.JS!Jak uruchomić serwer Node.JS dla aplikacji internetowej?

Napisałem przykładowy serwer, który może nasłuchiwać żądań http na porcie XXXX. Po uruchomieniu tego serwera z linii poleceń (Windows) wydaje się, że działa dobrze. Odpowiada na żądania zgłoszone do localhost: XXXX po otwarciu w przeglądarce.

Pytanie: Czy to ma działać? Aby serwer węzła działał, czy zawsze powinien być otwarty wiersz CMD, aby serwer mógł wysłuchać żądań? Czy mogę nie "coś" zrobić z IISNode?

Rozumiem, że jeśli zgłoszę żądania do plików JS, które są odnotowane w IISNode jako plik Node.JS i że NODE powinien obsługiwać to; wtedy Węzeł będzie obsługiwał żądanie dla mnie. Ale wtedy to zakłada, że ​​IIS jest serwerem sieciowym dla mnie i że konkretne żądania mogą być obsługiwane przez Węzeł.

Mam nadzieję, że mam tu sens! :)

+0

Nie wiem o iisnode, ale na Linux/Unix chcesz uruchomić proces w tle przy użyciu albo 'nohup' lub [na zawsze] (https: // GitHub. com/nodejitsu/forever). Ta ostatnia doskonale nadaje się do utrzymywania działania aplikacji nawet w razie awarii. –

+0

Nie jestem zbytnio zaznajomiony z Uniksem. Czy oznacza to, że zapytanie o powłokę jest zawsze otwarte, aby serwer węzła nadal działał? Czy jest to, że można go uruchomić w tle, jak proces w tle, niewidoczny dla użytkownika –

+0

Tak dokładnie proces jest uruchamiany w tle. Myślę, że mógłbyś zajrzeć w nieskończoność, powinien także pracować na maszynach z systemem Windows (ale jak już powiedziałem wcześniej, nie mam pojęcia, czy iisnode ma taką wbudowaną funkcjonalność). –

Odpowiedz

20

Rozwiązałem go przy użyciu właściwej metody. Tak, IISNode to jest ... Ale żaden z komentarzy nie odpowiadał jak "uruchamiać" app.js dla różnych aplikacji hostowanych na tym samym IIS (który obsługuje PHP, ASPX, itp.)

Krok 1. Edytuj punkt początkowy aplikacji węzła (zazwyczaj) app.js dla nowej struktury adresów URL.

Ekspres aplikacja zakłada, że ​​jest właścicielem całą przestrzeń URL i rozpoczyna adresy URL samego korzenia, jak pokazano:

Default EXPRESS App.js

Edit ty app.js wyglądać następująco (ale umieścić nazwę katalogu swoją aplikację, zamiast „aaspass” !!):


app.js modified as per directory structure of app hosted on IIS


Teraz umieść plik web.config w katalogu głównym aplikacji, który wygląda następująco (możesz użyć tego szablonu: webconfig).

Ponownie edytuj plik i zmień nazwę "aaspass" na nazwę katalogu aplikacji.


Modified We.Config to add rules to redirect to relevant app.js

to wszystko! Możesz to zrobić dla dowolnej liczby aplikacji i hostować je na serwerze SAME.

22

W Windows masz dwie opcje hostingu aplikacji node.js:

  1. Własny host procesu node.exe, podobnie jak w przypadku * nix. Podczas programowania prawdopodobnie uruchomisz go z poziomu wiersza poleceń. W produkcji chcesz wymyślić mechanizm, który zapewni zarządzanie cyklem życia procesu wokół node.exe (np. Uruchom go po uruchomieniu systemu operacyjnego). Najsensowniejszym sposobem zrobienia tego w systemie Windows jest użycie usług systemu Windows (zwanych również usługami NT). Komponent, który może w tym pomóc, to http://nssm.cc/.
  2. Host node.js z usługami IIS przy użyciu iisnode (http://github.com/tjanczuk/iisnode). W porównaniu do samodzielnego hostowania ta metoda ma wiele zalet opisanych w https://github.com/tjanczuk/iisnode/wiki. Ale chcesz także zbadać implikacje wydajności (nie wszystkie z nich faktycznie): http://tomasz.janczuk.org/2012/06/performance-of-hosting-nodejs.html.
+0

Kiedy mówimy "host za pomocą IISNode", co mamy na myśli? Dołącz app.js używając

Powiązane problemy