2016-04-15 9 views
11

Widziałem samouczki dla express.js, takich jak this, które rozpoczynają się od zera z własnym plikiem app.js i rezygnują z użycia ekspresowego generatora.Nauka node.js/express.js: O co chodzi z bin/www?

Moje pytanie: Dla początkujących, którzy próbują zrozumieć, jak używać tych narzędzi i utworzyć podstawową aplikację sieciową, czy powinienem zajmować się bin/www, czy powinienem właśnie definiować port w app.js?

Jedyną funkcjonalnością, którą obecnie rozumiem w bin/www jest ustawienie portu. Czy generator ekspresowy jest po prostu nadęty dzięki funkcji obsługi krawędzi, która jest zbyt duża dla początkującego?

+0

może pójść w obu kierunkach. W zależności od twoich preferencji. Rzadko wybieram generator ekspresowy. Jest to tylko szkielet aplikacji/folderu. Zwykle tworzę własną strukturę folderów, z którą czuję się komfortowo. Naprawdę nie ma znaczenia. – FRizal

Odpowiedz

13

app.js

  • zawiera wszystkie warstwy pośredniej (ciało-parser Morgan, etc.) i tras.
  • eksportuje obiekt aplikacji na końcu.

www

  • tutaj tworzy HTTPServer i przechodzi aplikację jako przewodnika

var server = http.createServer(app);

  • oprócz także ustawia port server.listen(port);
  • określa również funkcje mają być uruchamiane w przypadku wystąpienia błędu podczas uruchamiania serwera: server.on('error', onError);

Objaśnienie więc, w zasadzie to usuwa wszystkie stworzenia i uruchomienia kodu z serwera firmy app.js i pozwala skupić się wyłącznie w części logiki aplikacji. Uwaga: Jeśli widzisz w package.json pliku byś pamiętać to:

"scripts": { 
    "start": "node ./bin/www" 
} 

oznacza to po wpisaniu w terminalu npm start następnie zostanie ona automatycznie uruchomić plik ./bin/www.

+1

Czy musisz dodać plik .bin/www do kontroli źródła? –

+1

@RobbertDraaisma Tak, musisz włączyć to do kontroli źródła, ponieważ jest to twój punkt wejścia. – Nivesh

16

Oto powód, stwierdził zwięźle przez wyraźnego opiekuna:

Więc można require („./”) aplikacji z plików zewnętrznych i uzyskania wyraźnej app, który nie nasłuchuje na dowolnym porcie (pomyśl o testach jednostkowych i tym podobnych).

source

+3

To powinno być akceptowane odpowiedzi !! – snatera

Powiązane problemy