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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow