Suche…


Einführung

Die Struktur des nodejs-Projekts wird durch die persönlichen Präferenzen, die Projektarchitektur und die Modulinjektionsstrategie beeinflusst. Auch der ereignisbasierte Arc ', der einen dynamischen Modulinstanzierungsmechanismus verwendet. Um eine MVC-Struktur zu haben, ist es unbedingt erforderlich, den serverseitigen und den clientseitigen Quellcode zu trennen, da der clientseitige Code wahrscheinlich minimiert und an den Browser gesendet wird. Auf der Serverseite oder im Backend wird eine API zur Durchführung von CRUD-Vorgängen bereitgestellt

Bemerkungen

Das obige Projekt verwendet browserify- und vue.js-Module als Anwendungsbasisansicht und Minifikationsbibliotheken. Die Projektstruktur kann sich also geringfügig ändern, je nachdem, welches MVC-Framework Sie verwenden. Das Build-Verzeichnis in public muss den gesamten MVC-Code enthalten. Sie können eine Aufgabe haben, die dies für Sie erledigt.

Eine einfache nodejs-Anwendung mit MVC und API

  • Der erste Hauptunterschied besteht zwischen den dynamisch erzeugten Verzeichnissen, die für das Hosting und den Quellverzeichnissen verwendet werden.
  • Die Quellverzeichnisse verfügen je nach Konfigurationsumfang über eine Konfigurationsdatei oder einen Konfigurationsordner. Dazu gehören die Umgebungskonfiguration und die Konfiguration der Geschäftslogik, die Sie in das Konfigurationsverzeichnis einfügen können.
 |-- Config
        |-- config.json
        |-- appConfig
            |-- pets.config
            |-- payment.config
  • Nun die wichtigsten Verzeichnisse, in denen wir zwischen dem Server / Backend und den Frontend-Modulen unterscheiden. Die 2 Verzeichnisse Server und Webapp stellen das Backend bzw. Frontend dar, die wir in ein Quellverzeichnis aufnehmen können. src .

    Sie können für Ihre Server- oder Webappeauswahl unterschiedliche Namen wählen, je nachdem, was für Sie sinnvoll ist. Stellen Sie sicher, dass Sie es nicht zu lang oder zu komplex machen möchten, da es sich um die interne Projektstruktur handelt.

  • Innerhalb des Serververzeichnisses können Sie den Controller, App.js / index.js, verwenden, der Ihre Hauptknotenjs-Datei und der Startpunkt ist. Das Serververzeichnis. kann auch das dto- Verzeichnis haben, in dem sich alle Datenübertragungsobjekte befinden, die von API-Controllern verwendet werden.

     |-- server
          |-- dto
              |-- pet.js
              |-- payment.js
          |-- controller
              |-- PetsController.js
              |-- PaymentController.js
          |-- App.js
    
  • Das webapp-Verzeichnis kann in zwei große Teile public und mvc unterteilt werden. Dies wird wiederum durch die von Ihnen gewünschte Build-Strategie beeinflusst. Wir verwenden den Browser, bauen den MVC-Teil von webapp und minimieren den Inhalt des mvc- Verzeichnisses einfach.

    | - webapp | - public | - mvc

  • Jetzt kann das öffentliche Verzeichnis alle statischen Ressourcen, Bilder, CSS (Sie können auch Saas-Dateien haben) und vor allem die HTML-Dateien enthalten.

|-- 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
  • Das mvc- Verzeichnis enthält die Front-End-Logik einschließlich der Modelle , der View-Controller und aller anderen Utils- Module, die Sie als Teil der Benutzeroberfläche benötigen. Auch das index.js oder das shell.js, was auch immer Sie benötigen, ist ebenfalls Teil dieses Verzeichnisses.

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

Abschließend sieht die gesamte Projektstruktur wie folgt aus. Und eine einfache Build-Aufgabe wie gulp browserify minimiert die MVC-Skripts und veröffentlicht sie im öffentlichen Verzeichnis. Dieses öffentliche Verzeichnis können wir dann über express.use (satic ('public')) api als statische Ressource bereitstellen .

    |-- 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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow