Sök…


Introduktion

Strukturen för nodejs-projektet påverkas av de personliga preferenser, projektets arkitektur och modulinjektionsstrategi som används. Även på händelsebaserad båge som använder dynamisk modulinstansmekanism. För att ha en MVC-struktur är det absolut nödvändigt att separera källkoden från serversidan och klientsidan, eftersom klientsidokoden förmodligen kommer att minimeras och skickas till webbläsaren och är offentlig i sin grundläggande karaktär. Och serversidan eller back-end kommer att tillhandahålla API för att utföra CRUD-operationer

Anmärkningar

Projektet ovan använder browserify och vue.js-moduler som applikationsbasvy och minifieringsbibliotek. Så projektstrukturen kan ändras kortfattat baserat på vilket mvc-ramverk du använder t.ex. Byggkatalogen offentligt måste innehålla all mvc-kod. Du kan ha en uppgift som gör detta åt dig.

En enkel nodejs-applikation med MVC och API

  • Den första stora skillnaden är mellan de dynamiskt genererade katalogerna som kommer att användas för webbhotell och källkataloger.
  • Källkatalogerna kommer att ha en konfigurationsfil eller mapp beroende på hur mycket konfiguration du har. Detta inkluderar miljökonfigurationen och företagslogikkonfigurationen som du kan välja att lägga in i config-katalogen.
 |-- Config
        |-- config.json
        |-- appConfig
            |-- pets.config
            |-- payment.config
  • Nu är de viktigaste katalogerna där vi skiljer mellan serversidan / backend och frontend-modulerna. Den 2 kataloger server och webapp representerar backend och frontend respektive som vi kan välja att sätta in en källkatalogen nämligen. src .

    Du kan gå med olika namn enligt personligt val för server eller webapp beroende på vad som är vettigt för dig. Se till att du inte vill göra det för länge eller komplexa som det är i slutet interna projektstrukturen.

  • Inuti serverkatalogen kan du ha styrenheten, App.js / index.js som är din huvudnodejs-fil och startpunkt. Servern dir. kan också ha dto dir som innehåller alla dataöverföringsobjekt som kommer att vara usd av API-kontroller.

     |-- server
          |-- dto
              |-- pet.js
              |-- payment.js
          |-- controller
              |-- PetsController.js
              |-- PaymentController.js
          |-- App.js
    
  • Webapp-katalogen kan delas upp i två stora delar offentligt och mvc , detta påverkas återigen av vilken byggstrategi du vill använda. Vi använder webbläsare för att bygga MVC-delen av webapp och minimera innehållet från mvc- katalogen helt enkelt.

    | - webapp | - offentligt | - mvc

  • Nu kan den offentliga katalogen innehålla alla statiska resurser, bilder, css (du kan också ha saas-filer) och viktigast av allt HTML-filerna.

|-- 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
  • Mvc- katalogen kommer att innehålla front-end-logiken inklusive modellerna , visningskontrollerna och alla andra redskapsmoduler du kan behöva som en del av UI. Även index.js eller shell.js, vilket som helst som passar dig, är också en del av den här katalogen.

     |-- mvc
         |-- controllers
             |-- Dashborad.js
             |-- Help.js
             |-- Login.js
         |-- utils
         |-- index.js
    

Så avslutningsvis kommer hela projektstrukturen att se ut nedan. Och en enkel bygguppgift som gulp browserify kommer att minifiera mvc-skript och publicera i en offentlig katalog. Vi kan sedan tillhandahålla denna offentliga katalog som statisk resurs 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow