Учебники

ExpressJS — лучшие практики

В отличие от Django и Rails, у которых есть определенный способ работы, структура файла и т. Д., Express не следует определенному пути. Это означает, что вы можете структурировать приложение так, как вам нравится. Но по мере увеличения размера вашего приложения его очень сложно поддерживать, если оно не имеет четко определенной структуры. В этой главе мы рассмотрим обычно используемые структуры каталогов и разделение задач при создании наших приложений.

Сначала мы обсудим лучшие практики создания приложений для узлов и Express.

  • Всегда начинайте проект узла, используя npm init .

  • Всегда устанавливайте зависимости с помощью —save или —save-dev . Это гарантирует, что если вы перейдете на другую платформу, вы можете просто запустить npm install для установки всех зависимостей.

  • Придерживайтесь строчных имен файлов и переменных camelCase. Если вы посмотрите на любой модуль npm, он назван в нижнем регистре и разделен черточками. Всякий раз, когда вам нужны эти модули, используйте camelCase.

  • Не добавляйте node_modules в свои репозитории. Вместо этого npm устанавливает все на машины для разработки.

  • Используйте файл конфигурации для хранения переменных

  • Группируйте и изолируйте маршруты в своем собственном файле. Например, возьмем операции CRUD в примере фильмов, которые мы видели на странице API REST.

Всегда начинайте проект узла, используя npm init .

Всегда устанавливайте зависимости с помощью —save или —save-dev . Это гарантирует, что если вы перейдете на другую платформу, вы можете просто запустить npm install для установки всех зависимостей.

Придерживайтесь строчных имен файлов и переменных camelCase. Если вы посмотрите на любой модуль npm, он назван в нижнем регистре и разделен черточками. Всякий раз, когда вам нужны эти модули, используйте camelCase.

Не добавляйте node_modules в свои репозитории. Вместо этого npm устанавливает все на машины для разработки.

Используйте файл конфигурации для хранения переменных

Группируйте и изолируйте маршруты в своем собственном файле. Например, возьмем операции CRUD в примере фильмов, которые мы видели на странице API REST.

Структура каталогов

Давайте теперь обсудим Экспресс-структуру каталогов.

Веб-сайты

Express не имеет определенной сообществом структуры для создания приложений. Ниже приводится основная структура проекта для веб-сайта.

test-project/
   node_modules/
   config/
      db.js                //Database connection and configuration
      credentials.js       //Passwords/API keys for external services used by your app
      config.js            //Other environment variables
   models/                 //For mongoose schemas
      users.js
      things.js
   routes/                 //All routes for different entities in different files 
      users.js
      things.js
   views/
      index.pug
      404.pug
        ...
   public/                 //All static content being served
      images/
      css/
      javascript/
   app.js
   routes.js               //Require all routes in this and then require this file in 
   app.js 
   package.json

Существуют и другие подходы к созданию сайтов с помощью Express. Вы можете создать сайт, используя шаблон проектирования MVC. Для получения дополнительной информации вы можете посетить следующие ссылки.

https://code.tutsplus.com/tutorials/build-a-complete-mvc-website-with-expressjs—net-34168

а также,

https://www.terlici.com/2014/08/25/best-practices-express-structure.html .

RESTful API

API проще в разработке; им не нужен общедоступный каталог или каталог представлений. Используйте следующую структуру для создания API —

test-project/
   node_modules/
   config/
      db.js                //Database connection and configuration
      credentials.js       //Passwords/API keys for external services used by your app
   models/                 //For mongoose schemas
      users.js
      things.js
   routes/                 //All routes for different entities in different files 
      users.js
      things.js
   app.js
   routes.js               //Require all routes in this and then require this file in 
   app.js 
   package.json

Вы также можете использовать генератор йоменов, чтобы получить аналогичную структуру.