Ricerca…


introduzione

La struttura del progetto nodejs è influenzata dalle preferenze personali, dall'architettura del progetto e dalla strategia di iniezione del modulo in uso. Inoltre, l'arco basato su eventi 'che utilizza il meccanismo di istanziazione dei moduli dinamici. Per avere una struttura MVC è imperativo separare il lato server e il codice sorgente lato client, poiché il codice lato client verrà probabilmente ridotto a icona e inviato al browser ed è pubblico nella sua natura di base. E il lato server o il back-end forniranno API per eseguire operazioni CRUD

Osservazioni

Il progetto in alto utilizza i moduli browserify e vue.js come librerie view e minification dell'applicazione base. Quindi la struttura del progetto può cambiare minuziosamente in base al framework mvc che usi, ad esempio La directory di compilazione in pubblico dovrà contenere tutto il codice mvc. Puoi avere un compito che fa questo per te.

Una semplice applicazione nodejs con MVC e API

  • La prima distinzione principale è tra le directory generate dinamicamente che verranno utilizzate per le directory di hosting e di origine.
  • Le directory di origine avranno un file di configurazione o una cartella a seconda della quantità di configurazione che potresti avere. Ciò include la configurazione dell'ambiente e la configurazione della business logic che è possibile scegliere di inserire nella directory di configurazione.
 |-- Config
        |-- config.json
        |-- appConfig
            |-- pets.config
            |-- payment.config
  • Ora le directory più vitali in cui distinguiamo tra lato server / back-end e moduli front-end. Il server di 2 directory e webapp rappresentano rispettivamente il backend e il frontend che possiamo scegliere di inserire all'interno di una directory di origine. src .

    Puoi scegliere nomi diversi per scelta personale per server o webapp a seconda di cosa ha senso per te. Assicurati di non volerlo fare troppo a lungo o troppo complesso come nella struttura interna del progetto finale.

  • All'interno della directory del server puoi avere il controller, l'app.js / index.js che sarà il tuo file mainjs principale e il punto di partenza. La dir del server. può anche avere la directory dto che contiene tutti gli oggetti di trasferimento dati che saranno usd dai controller API.

     |-- server
          |-- dto
              |-- pet.js
              |-- payment.js
          |-- controller
              |-- PetsController.js
              |-- PaymentController.js
          |-- App.js
    
  • La directory webapp può essere divisa in due parti principali public e mvc , questo è di nuovo influenzato dalla strategia di build che si desidera utilizzare. Stiamo usando browserfiy per costruire la parte MVC di webapp e minimizzare il contenuto della directory mvc semplicemente messo.

    | - webapp | - public | - mvc

  • Ora la directory pubblica può contenere tutte le risorse statiche, le immagini, i css (anche i file saas) e, soprattutto, i file 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
  • La directory mvc conterrà la logica front-end inclusi i modelli , i controller di visualizzazione e qualsiasi altro modulo di utilità che potrebbe essere necessario come parte dell'interfaccia utente. Anche index.js o shell.js, qualunque sia la tua suite, fa parte di questa directory.

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

Quindi, in conclusione, l'intera struttura del progetto apparirà come segue. E una semplice attività di build come gulp browserify ridurrà gli script mvc e pubblicherà nella directory pubblica . Possiamo quindi fornire questa directory pubblica come risorsa statica tramite 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow