Node.js
Project structuur
Zoeken…
Invoering
De structuur van het nodejs-project wordt beïnvloed door de persoonlijke voorkeuren, de architectuur van het project en de module-injectiestrategie die wordt gebruikt. Om een MVC-structuur te hebben, is het absoluut noodzakelijk om de server- en client-side broncode te scheiden, omdat de client-side code waarschijnlijk wordt geminimaliseerd en naar de browser wordt verzonden en in zijn basiskarakter openbaar is. En de serverzijde of back-end biedt API voor het uitvoeren van CRUD-bewerkingen
Opmerkingen
Het bovenstaande project maakt gebruik van browsify- en vue.js-modules als basisweergave van applicaties en minification-bibliotheken. Dus de projectstructuur kan minutieus veranderen op basis van het mvc-framework dat u gebruikt, bijv. De build-map in het openbaar moet alle mvc-code bevatten. U kunt een taak hebben die dit voor u doet.
Een eenvoudige nodejs-applicatie met MVC en API
- Het eerste grote onderscheid is tussen de dynamisch gegenereerde mappen die worden gebruikt voor hosting en bronmappen.
- De bronmappen hebben een configuratiebestand of map, afhankelijk van de hoeveelheid configuratie die u mogelijk heeft. Dit omvat de omgevingsconfiguratie en bedrijfslogica-configuratie die u kunt kiezen om in de configuratiemap te plaatsen.
|-- Config
|-- config.json
|-- appConfig
|-- pets.config
|-- payment.config
Nu de meest vitale mappen waarin we onderscheid maken tussen de server side / backend en de frontend modules. De server met 2 mappen en webapp vertegenwoordigen respectievelijk de backend en frontend die we kunnen kiezen om in een bronmap te zetten. src .
Afhankelijk van wat voor u zinvol is, kunt u kiezen uit verschillende namen volgens persoonlijke keuze voor server of webapp. Zorg ervoor dat u het niet te lang of te complex wilt maken, omdat het uiteindelijk de interne projectstructuur is.
In de servermap kunt u de controller, de App.js / index.js, het hoofdnodejs-bestand en startpunt, hebben. De servermap. kan ook de dto dir hebben die alle gegevensoverdrachtobjecten bevat die worden gebruikt door API-controllers.
|-- server |-- dto |-- pet.js |-- payment.js |-- controller |-- PetsController.js |-- PaymentController.js |-- App.js
De webapp-directory kan worden verdeeld in twee grote delen public en mvc , dit wordt opnieuw beïnvloed door de build-strategie die u wilt gebruiken. We gebruiken browserfiy om het MVC-gedeelte van de webapp te bouwen en de inhoud van de mvc- directory eenvoudig te minimaliseren.
| - webapp | - openbaar | - mvc
Nu kan de openbare map alle statische bronnen, afbeeldingen, css (u kunt ook Saas-bestanden hebben) en vooral de HTML-bestanden bevatten.
|-- 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
De map mvc bevat de front-end logica, inclusief de modellen , de viewcontrollers en andere utils- modules die u mogelijk nodig hebt als onderdeel van de gebruikersinterface. Ook de index.js of shell.js, afhankelijk van wat u aanbiedt, maakt ook deel uit van deze map.
|-- mvc |-- controllers |-- Dashborad.js |-- Help.js |-- Login.js |-- utils |-- index.js
Dus tot slot ziet de hele projectstructuur er als volgt uit. En een eenvoudige bouwtaak zoals gulp browserify zal de mvc-scripts verkleinen en in de openbare map publiceren. We kunnen deze openbare map vervolgens als statische bron aanbieden via express.use (satic ('public')) api.
|-- 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