Node.js
Struktura projektu
Szukaj…
Wprowadzenie
Na strukturę projektu nodejs wpływają osobiste preferencje, architektura projektu i stosowana strategia wprowadzania modułów, a także łuk oparty na zdarzeniach, który wykorzystuje mechanizm dynamicznej instancji modułu. Aby mieć strukturę MVC, konieczne jest oddzielenie kodu źródłowego po stronie serwera i klienta, ponieważ kod po stronie klienta zostanie prawdopodobnie zminimalizowany i wysłany do przeglądarki i ma charakter publiczny. A po stronie serwera lub zaplecza zapewni interfejs API do wykonywania operacji CRUD
Uwagi
Powyższy projekt wykorzystuje moduły browserify i vue.js jako widok podstawowy aplikacji i biblioteki minimalizacji. Dlatego struktura projektu może ulec drobnym zmianom w zależności od używanego frameworku mvc, np. Publiczny katalog kompilacji będzie musiał zawierać cały kod mvc. Możesz mieć zadanie, które zrobi to za Ciebie.
Prosta aplikacja nodejs z MVC i API
- Pierwszą istotną różnicą są dynamicznie generowane katalogi, które będą używane do hostowania i katalogów źródłowych.
- Katalogi źródłowe będą miały plik konfiguracyjny lub folder w zależności od ilości konfiguracji, jaką możesz mieć. Obejmuje to konfigurację środowiska i konfigurację logiki biznesowej, którą możesz umieścić w katalogu konfiguracji.
|-- Config
|-- config.json
|-- appConfig
|-- pets.config
|-- payment.config
Teraz najważniejsze katalogi, w których rozróżniamy moduły po stronie serwera / zaplecza i modułów frontendu. Serwer 2 katalogi i webapp reprezentują backend i frontend odpowiednio których możemy wybrać, aby umieścić wewnątrz mianowicie katalogu źródłowego. src .
Możesz wybrać inną nazwę serwera lub aplikacji internetowej w zależności od tego, co ma dla ciebie sens. Upewnij się, że nie chcesz, aby był zbyt długi lub skomplikowany, ponieważ znajduje się on w końcowej wewnętrznej strukturze projektu.
W katalogu serwera możesz mieć kontroler App.js / index.js, który będzie głównym plikiem nodejs i punktem początkowym. Serwer reż. może również mieć katalog dto, który przechowuje wszystkie obiekty przesyłania danych, które będą używane przez kontrolery API.
|-- server |-- dto |-- pet.js |-- payment.js |-- controller |-- PetsController.js |-- PaymentController.js |-- App.js
Katalog aplikacji webowej można podzielić na dwie główne części public i mvc , na co znów ma wpływ strategia kompilacji, której chcesz użyć. Używamy przeglądarki, aby zbudować część MVC aplikacji internetowej i zminimalizować zawartość z katalogu mvc po prostu.
| - webapp | - public | - mvc
Teraz katalog publiczny może zawierać wszystkie zasoby statyczne, obrazy, css (możesz również mieć pliki saas) i, co najważniejsze, pliki HTML.
|-- public
|-- build // will contianed minified scripts(mvc)
|-- images
|-- mouse.jpg
|-- cat.jpg
|-- styles
|-- style.css
|-- views
|-- petStore.html
|-- paymentGateway.html
|-- header.html
|-- footer.html
|-- index.html
Katalog MVC będzie zawierać logikę front-end w tym modeli, kontrolerów widzenia i innych Utils moduły mogą być potrzebne jako część UI. Również plik index.js lub shell.js, w zależności od tego, który pakiet Ci odpowiada, jest również częścią tego katalogu.
|-- mvc |-- controllers |-- Dashborad.js |-- Help.js |-- Login.js |-- utils |-- index.js
Podsumowując, cała struktura projektu będzie wyglądać jak poniżej. Proste zadanie kompilacji, takie jak gulp Browserify , zminimalizuje skrypty mvc i opublikuje je w katalogu publicznym . Następnie możemy udostępnić ten katalog publiczny jako zasób statyczny za pośrednictwem interfejsu express.use (satic ('public')) .
|-- node_modules
|-- src
|-- server
|-- controller
|-- App.js // node app
|-- webapp
|-- public
|-- styles
|-- images
|-- index.html
|-- mvc
|-- controller
|-- shell.js // mvc shell
|-- config
|-- Readme.md
|-- .gitignore
|-- package.json