В предыдущих уроках
мы узнали о Node.
Мы также видели, как Node может быть использован для настройки веб-сервера.
Теперь конструкторы Node намеренно держали узел маленьким с небольшим количеством
модулей кода, чтобы они могли оставить его на усмотрение
сторонних разработчиков, чтобы придумать инновационные решения проблем.
Поэтому после выпуска Node ряд сторонних разработчиков начали разрабатывать
и выпускать интересные сторонние модули, которые могут работать поверх платформы Node.
Теперь вы видели ряд модулей Node, которые можно было бы
использовать для разработки интерфейсов в предыдущих курсах.
Теперь в этом курсе мы рассматриваем серверную разработку и на стороне сервера,
одним из самых популярных сторонних модулей Node или
фреймворков для построения HTTP-серверов является Express.
Давайте посмотрим на некоторые детали Express в
этой лекции, а затем мы будем использовать Express для
создания сервера, который обслуживает REST API на протяжении всей остальной части этого курса.
Во-первых, что такое Экспресс?
Express - это быстрый, неуверенный,
минималистский фреймворк, который работает поверх Node.js и поддерживает веб-разработку.
Это определение, которое я заимствовал из expressjs.com,
сайта, где для нас доступна связанная с Express документация.
Теперь Express позволяет разрабатывать веб-приложение,
серверное приложение, которое будет обслуживать контент для потребления нашим фронт-эндом.
Экспресс предоставляет надежный набор функций, которые мы рассмотрим
более подробно на остальных уроках в этом курсе.
Выражайте себя, как я уже сказал, является минималистской структурой,
а Express также предоставляет способ расширения и
добавления функциональности Express через стороннее промежуточное программное обеспечение.
Это расширяет функциональность Express и добавляет дополнительные функции по мере необходимости.
Таким образом, вы можете создать веб-сервер, используя столько же стороннего промежуточного программного обеспечения, сколько
необходимо для удовлетворения потребностей вашего веб-сервера, который вы разрабатываете.
Мы рассмотрим некоторые примеры стороннего промежуточного программного обеспечения в этом уроке, и мы
также рассмотрим больше из них по мере прохождения остальных уроков в этом курсе.
Чтобы использовать Express в вашем проекте, конечно,
первым шагом является установка Express, и поскольку Express является модулем Node,
мы устанавливаем его, сказав npm install express —save,
и это установит Express в ваш локальный проект.
Мы увидим использование этого в упражнении, которое следует за этой лекцией.
Давайте кратко поговорим о промежуточном программном обеспечении Express.
Итак, какова именно цель промежуточного программного обеспечения?
Среднее программное обеспечение, которое Express поддерживает, предоставляют много
функций плагина, которые будут использоваться для улучшения вашего приложения Express,
функционал плагина, как например, мы будем смотреть на
промежуточное программное обеспечение под названием Morgan, которое позволяет
распечатать информацию журнала на экране о запросы, которые приходят на ваш сервер.
Аналогичным образом, мы рассмотрим другое промежуточное программное обеспечение под названием BodyParser,
которое позволяет анализировать тело
входящего сообщения HTTP-запроса и извлекать
информацию из него для использования в вашем приложении Express.
Мы увидим их использование в упражнении, которое следует.
Как я уже упоминал, Morgan регистрирует информацию на консоли на стороне сервера,
информацию о входящих запросах.
Аналогичным образом, они могут обслуживать статические веб-ресурсы с нашего сервера, используя
статический Express, поэтому это будет обслуживать информацию из папки в нашем проекте Express,
и при объявлении проекта вы можете сказать, что я
двойное подчеркивание имя файла и двойное подчеркивание имя каталога или dirname, который дает
вам полный путь к файлу или каталогу для
текущего модуля, и вы увидите, что я использую это в упражнении.
Теперь, когда мы немного поняли об
Express и промежуточном программном обеспечении, которое использует Express,
давайте посмотрим на модуль Node,
потому что это первый раз, когда мы сталкиваемся с модулями сторонних узлов,
мы рассмотрим некоторые детали о сторонних модулях Node, поэтому, если мы рассмотрим
package.json, чтобы узнать, что содержится в файле package.json,
мы также рассмотрим семантическое управление версиями.
Поэтому, когда вы указываете версию пакета, который вы используете, вы
всегда указываете версию, указав версию Major Version.Minor version.The patch.
Таким образом, когда вы устанавливаете пакет,
он всегда определяется этими тремя числами,
основная версия, которая может привести к нарушению изменений, так что, если вы
устанавливаете более новую версию пакета, она может быть не
полностью обратно совместима с предыдущими версиями.
Это может привести к нарушению изменений, в результате которых вам может потребоваться вернуться и исправить
код, который вы, возможно, написали в более ранней версии вашего проекта.
Небольшая версия вносит
некоторые незначительные изменения в ваш пакет и может не нарушать изменения.
Патч будет исправлением ошибки, которое часто выдается, тогда обнаруживается небольшая ошибка.
Таким образом, патчи обычно не приводят к каким-либо изменениям, и поэтому вы можете легко использовать
более высокую версию или более высокую версию патча
определенного пакета, который вы используете в приложении Node.
Когда вы устанавливаете пакет, вы можете указать
точную версию пакета для установки, сказав npm install,
например, если вы хотите установить
версию 4.0.0 Express, вы можете сказать express @4 .0.0.
Таким образом, вы явно указываете, какую версию пакета установить.
Если вы согласны с версией патча более высокого уровня,
вы бы сказали npm install express@"~4.0.0 Если
младшая версия более высокой версии пакета
приемлема, вы бы сказали @ и имя пакета.
Теперь этот вид информации также сохраняется в файле package.json,
мы быстро посетим пакет json-файла,
где вы заметите, что часть этой информации сохраняется.
Теперь, когда вы сделаете упражнение, которое следует за этой лекцией,
вы увидите это в файле package.json.
Это будет результатом завершения упражнения, которое следует за этой лекцией.
В упражнении мы построим простой веб-сервер с помощью Express.
Теперь позвольте мне провести вас через быстрый тур по package.json,
чтобы проиллюстрировать некоторую информацию в package.json.
Таким образом, в файле package.json вы заметите эту информацию здесь,
это свойство для нашего json, которое хранится здесь под названием Dependencies.
Зависимости - это то, где вы укажете,
какие дополнительные сторонние модули, от
которых зависит этот конкретный проект узла,
так что, как вы можете видеть здесь, мы говорим, что этот проект зависит от Express
и Morgan и обратите внимание, в частности, как эта информация указана Здесь.
Таким образом, это ^4.16.3 означает, что это будет
работать с любой версией 4.16.3 или выше.
Вы можете использовать младшую версию более высокого уровня, и этот проект все равно будет в
порядке с ним и аналогичным образом для Morgan мы указали информацию здесь.
Таким образом, эта дополнительная информация добавляется в файл package.json всякий раз, когда вы
устанавливаете npm и говорите -save флаг для установки npm.
Теперь вы также заметите, что я создал файл.gitignore здесь и внутри
файла.gitignore, который я указал, что git должен игнорировать папку модулей Node.
Итак, что именно содержится в папке модулей Node?
Если вы устанавливаете сторонние модули в ваше приложение Node,
все эти сторонние модули будут сохранены в папке Node modules здесь,
поэтому в вашем проекте вы увидите, что папка модулей Node была создана здесь.
И взглянув на папку модулей узла, вы увидите
целую кучу пакетов, которые были установлены.
Теперь все они были установлены, потому что вы
устанавливаете Express и Express в свою очередь зависит от
некоторых других пакетов, которые необходимы, поэтому все они также устанавливаются здесь по умолчанию.
В частности, позвольте мне также обратить ваше внимание на пакет Express здесь,
поэтому, если вы войдете в пакет Express, вы увидите
дополнительную информацию, хранящуюся в пакете Express,
поэтому перспектива индекса также так как Express
является модулем Node, вы увидите
файл package.json внутри Express также, который содержит
дополнительную информацию, которая, конечно, очень подробно там,
трудно понять, но обратите внимание, в частности
, что Экспресс сам зависит от многих других модулей узла здесь.
И именно поэтому все эти другие модули Node
также были установлены в папку Node modules.
Поэтому, когда вы устанавливаете Express,
это сразу же вызовет все его зависимости также будут установлены, потому что
Express потребует этих других модулей Node для выполнения своей работы.
Кроме того, в Express также вы увидите файл index.js.
Таким образом, это отправная точка для нашего модуля Express Node и
обратите внимание, в частности, что файл index.js просто говорит, что module.exports требует lib express.
Таким образом, фактический код для самого модуля Express находится внутри этого проекта lib,
папка lib здесь, и вы можете увидеть детали.
Поэтому, если вам интересно увидеть детали самого Экспресс, вы можете пойти и посмотреть
туда, но снова это может быть немного слишком много для вас в этот момент.
На данный момент просто примите тот факт, что Express будет делать свою работу так, как ожидалось.
Но я думал, что это будет интересный опыт, чтобы посетить папку модуля Node,
чтобы посмотреть на структуру одного конкретного стороннего модуля Node немного более подробно.
Кроме того, вы заметите, что
здесь есть другой файл под названием package-lock.json, который установлен.
Теперь это устанавливается более новыми версиями npm.
Файл package-lock.json автоматически генерируется
npm, который хранит информацию о
точном дереве, которое было сгенерировано при установке
других модулей Node, и это очень полезно, когда вам
нужно сделать установку модулей Node в другом месте.
Так, например, если вы загружаете репозиторий Git и
попытаетесь воссоздать этот проект на другом компьютере,
вы просто напечатаете npm install в командной строке, и
это предложит вашему приложению Node автоматически установить все, что указано в зависимостях здесь для вас.
При создании пакета lock.json хранит дополнительную информацию, которая используется
npm для правильной установки всех модулей npm, которые необходимы.
Теперь на данный момент вам не нужно беспокоиться о деталях того,
что есть внутри файла package-lock.json.
С этим мы завершаем этот урок, где мы изучили некоторые детали об Экспресс.