В моем предыдущем блоге мы установили, что Node JS на самом деле является не веб-сервером, а платформой, на которой вы строите свой веб-сервер. Express JS — это настоящий модуль веб-сервера. Express JS — это модуль Common JS, который вы получаете в своем приложении, требуя от Node JS. Традиционно было наоборот. Мы бы развернули наше приложение на веб-сервере, но здесь мы привносим возможности веб-сервера в наше приложение.

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

Общие модули JS стандартизируют способ работы с Javascript вне браузера. Common JS — это спецификация, больше похожая на шаблон проектирования. Существует ряд библиотек/модулей, которые реализованы с использованием этой спецификации, например: Express, и вы также можете создавать свои собственные модули. Как я уже говорил в своем предыдущем блоге, он в основном решает проблему с одним глобальным пространством имен с помощью javascript. На самом деле модуль Common JS — это не что иное, как файл javascript. Каждый модуль написан в одном файле javascript и имеет изолированную область, которая содержит свои собственные переменные. В этой области есть 2 ключевых компонента:

  • module.exports — этот объект содержится в каждом модуле и позволяет отображать фрагменты кода при загрузке модуля.
//In myCommonJSModule.js module.exports = foo; function foo() { //... do something }
  • require — загружает модуль в ваш код.
var myModule = require('./myCommonJSModule.js'); myModule.foo();

Хорошо, теперь давайте подробнее рассмотрим экспресс. Итак, в моем предыдущем блоге я сказал, что если вы посмотрите на пример кода на странице о Node JS, он покажет, как создать простой веб-сервер HTTP. Очевидно, что Node JS может напрямую использовать модуль http для создания веб-сервера. Тогда зачем нам экспресс, спросите вы? Давайте взглянем:

Express расширяет основные возможности http и вместе с тем предоставляет 2 ключевые функции:

Если вы используете модуль http, вам придется выполнить много работы, например, синтаксический анализ полезной нагрузки, выбор правильного шаблона маршрута на основе регулярного выражения.

Промежуточное ПО: что такое промежуточное ПО? На сайте express.js: «Функции промежуточного программного обеспечения — это функции, которые имеют доступ к объекту запроса, объекту ответа и следующей функции промежуточного программного обеспечения в цикле запроса-ответа приложения.». Express предоставляет функции промежуточного программного обеспечения для таких вещей, как регистрация запросов на консоль, анализ URL-адреса, анализ тела ответа, установка местоположения статических файлов, таких как файлы css, js и html.

Маршрутизация. Маршрутизация относится к определению конечных точек (URI) для приложения и тому, как оно отвечает на запросы клиентов. Маршрут — это комбинация URI, метода HTTP-запроса (GET, POST и т. д.) и одного или нескольких обработчиков для конечной точки.

Поэтому, когда клиент отправляет запрос на путь, обратный вызов выполняется там, где мы подключаемся к нашему следующему уровню в нашем стеке, то есть к MongoDB.

Итак, в заключение ключевой элемент, который дает нам экспресс, — это возможность построить веб-сервер. Но что еще более важно, это дает нам конечные точки покоя, которые будут вызываться с нашего уровня представления (Angular JS), и как только мы перейдем к методам сервера, он будет обращаться к уровню постоянства (MongoDB). Так что в некотором смысле он действует как мост, который разделяет уровни в нашем приложении.

Первоначально опубликовано на www.shreyasanand.com 8 апреля 2016 г.