Поиск…


Вступление

На структуру проекта nodejs влияют личные предпочтения, используемая архитектура проекта и стратегия внедрения модулей. Также на основе событий, основанной на дуге, которая использует механизм создания динамического модуля. Чтобы иметь структуру MVC, необходимо выделить исходный код на стороне сервера и на стороне клиента, поскольку код на стороне клиента, вероятно, будет сведен к минимуму и отправлен в браузер и будет общедоступным по своему основному характеру. И серверная или серверная часть предоставит API для выполнения операций CRUD

замечания

В приведенном выше проекте используются модули браузера и vue.js в качестве базового представления приложений и библиотек минимизации. Таким образом, структура проекта может незначительно измениться на основе используемой вами структуры mvc. Например, в каталоге сборки публично должен быть указан весь код mvc. У вас может быть задача, которая сделает это за вас.

Простое приложение nodejs с MVC и API

  • Первое важное различие заключается в динамически созданных каталогах, которые будут использоваться для хостинга и исходных каталогов.
  • У исходных каталогов будет файл конфигурации или папка в зависимости от объема конфигурации, который у вас может быть. Это включает конфигурацию среды и конфигурацию бизнес-логики, которую вы можете поместить в каталог конфигурации.
 |-- Config
        |-- config.json
        |-- appConfig
            |-- pets.config
            |-- payment.config
  • Теперь наиболее важные каталоги, в которых мы различаем серверную часть / бэкэнд и интерфейсные модули. Сервер 2-х серверов и webapp представляют собой бэкэнд и интерфейс, которые мы можем выбрать для размещения в исходной директории. src .

    Вы можете использовать разные имена в соответствии с личным выбором для сервера или webapp в зависимости от того, что имеет смысл для вас. Удостоверьтесь, что вы не хотите делать это слишком долго или сложным, поскольку это в конечном итоге внутренняя структура проекта.

  • Внутри каталога сервера вы можете иметь контроллер, App.js / index.js, который будет вашим основным файлом nodejs и начальной точкой. Сервер dir. также может иметь dto- dir, который содержит все объекты передачи данных, которые будут использоваться контроллерами API.

     |-- server
          |-- dto
              |-- pet.js
              |-- payment.js
          |-- controller
              |-- PetsController.js
              |-- PaymentController.js
          |-- App.js
    
  • Каталог webapp можно разделить на две основные части public и mvc , на это снова влияет стратегия построения, которую вы хотите использовать. Мы используем browserfiy для сборки MVC-части webapp и минимизации содержимого из простой директории mvc .

    | - Охота и рыбалка

  • Теперь общий каталог может содержать все статические ресурсы, изображения, css (вы также можете иметь файлы saas) и, самое главное, файлы 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
  • Каталог mvc будет содержать интерфейсную логику, включая модели , контроллеры представлений и любые другие модули utils, которые могут вам понадобиться как часть пользовательского интерфейса. Также index.js или shell.js в зависимости от того, какой из них будет принадлежать, вы также являетесь частью этого каталога.

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

Итак, в заключение вся структура проекта будет выглядеть ниже. И простая задача сборки, такая как gulp browserify , минимизирует сценарии mvc и публикует в общедоступном каталоге. Затем мы можем предоставить этот общий каталог как статический ресурс через 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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow