Как создать простой веб-сервер с Node.js

  1. Установка Node.js
  2. Терминал и ваш ПУТЬ
  3. Убедиться, что все установлено правильно
  4. Планирование вашего приложения
  5. Создание модуля Node.js
  6. Запуск команд npm
  7. Модули и пакеты
  8. Создание простого веб-сервера в Node.js
  9. Понимание веб-серверов
  10. Веб-серверы и HTTP
  11. Обратные вызовы в Node.js
  12. Резюме

Ниже приводится выдержка из книги Получите Программирование с Node.js , опубликовано manning.com , Вы можете приобрести книгу Вот со скидкой 37% с помощью кода fccwexler .

Эта статья представляет собой практическое введение в использование Node Эта статья представляет собой практическое введение в использование Node.js. Мы собираемся перейти к установке Node.js, узнать о npm, а затем мы собираемся создать модуль Node.js и сразу перейти к инициализации веб-сервера. Не стесняйтесь следовать дома, как вы читаете!

Установка Node.js

Node.js растет в популярности и поддержке. По этой причине новые версии для загрузки развертываются довольно часто, и важно быть в курсе последних версий, чтобы понять, как они могут принести пользу или иным образом повлиять на создаваемые вами приложения. На момент написания, версия Node.js для загрузки была 7.6 или выше.

Смотрите Начало работы с Node.js

Научитесь создавать серверные веб-приложения в JavaScript с помощью Node.js.

ПРИМЕЧАНИЕ. Релиз Node.js 7.6 поставляется с поддержкой синтаксиса ES6. ES6 (ECMAScript 2015) - это недавнее обновление JavaScript, с улучшениями синтаксиса для определения переменных, функций и кода ООП в целом. Чтобы быть в курсе обновлений JavaScript, скачайте последнюю стабильную версию Node.js по мере развития.

Есть несколько способов скачать и установить Node.js, все из которых перечислены на Основной сайт Node.js ,

Поскольку Node.js не зависит от платформы, вы можете загрузить и установить его на MacOS, Windows или Linux и ожидать полной функциональности.

Самый простой способ установить Node.js - перейти в ссылка для скачивания и следуйте инструкциям и подсказкам, чтобы загрузить установщик последней версии Node.js.

ПРИМЕЧАНИЕ. При установке Node.js вы также получаете npm, экосистему внешних библиотек Node.js (несколько файлов кода, написанных другими людьми), которые можно импортировать в ваши будущие проекты. Вы узнаете больше о npm в следующем разделе.

Вы узнаете больше о npm в следующем разделе

Рисунок 1. Страница установщика Node.js

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

Рисунок 2. Запись Node.js на ваш компьютер

Терминал и ваш ПУТЬ

Вы будете работать в основном в терминале вашего компьютера, который является встроенным программным обеспечением, используемым для навигации и выполнения команд на вашем компьютере без графического интерфейса. В этой книге рассказывается об использовании команд терминала Unix (Bash). Те из вас, кто является пользователями Windows, могут следовать с помощью окна терминала CMD в Windows (вам может понадобиться поиск командных эквивалентов по всей книге). Вы можете ссылаться этот стол Сравнение команд Windows и Unix. Чтобы упростить работу в Windows, вы можете загрузить и установить дополнительный терминал Bash под названием GitBash с git-scm.com.

Запишите, где на вашем компьютере установлены ваши версии Node.js и npm. Эта информация отображается в последнем окне программы установки. Установщик пытается добавить эти каталоги в путь вашей системы.

Переменная PATH вашего компьютера - это первое место, где терминал будет искать ресурсы, используемые в разработке. Думайте об этом как о индексе вашего компьютера для быстрого поиска необходимых вам инструментов. Добавляя исходный путь к файлам или каталоги этих инструментов в переменную PATH, у терминала не возникнет проблем с их поиском. Если у вас возникли проблемы с запуском Node.js в вашем терминале, следуйте инструкциям по установке Вот ,

Убедиться, что все установлено правильно

Теперь, когда у вас установлен Node.js, давайте используем терминал, чтобы убедиться, что все установлено правильно. Откройте терминал (или GitBash) и введите в командной строке следующую команду: node-v.

Выходные данные этой команды должны показать версию только что установленного Node.js. Точно так же вы можете проверить установленную версию npm, введя команду npm -v в командной строке.

ПРИМЕЧАНИЕ. Если ваш терминал отвечает с ошибкой или вообще ничего не происходит, возможно, ваша установка Node.js не удалась. В случае ошибки попробуйте скопировать и вставить эту ошибку в поисковую систему, чтобы найти общие решения, или попробуйте повторить процесс установки.

Теперь, когда у вас установлен Node.js и ваш терминал работает, вам нужно где-нибудь написать свой код. Хотя текстовые редакторы бывают разных форм и могут также использоваться для создания некодовых файлов, текстовые редакторы, разработанные специально для разработчиков, часто поставляются в комплекте с полезными инструментами и плагинами. Я рекомендую установить текстовый редактор Atom, который вы можете скачать по адресу atom.io ,

СОВЕТ: Если вы когда-нибудь забудете, где вы установили Node.js или npm, вы можете открыть окно командной строки и ввести либо узел, либо npm, чтобы увидеть соответствующее местоположение. В командной строке Windows, используйте где вместо которого.

Планирование вашего приложения

Представьте, что вы хотите создать приложение для сельскохозяйственного клуба (CSA) вашего города. С помощью этого приложения пользователи могут подписаться на получение продуктов питания от местных ферм и дистрибьюторов. Приложение гарантирует, что ваше сообщество получает здоровую пищу и остается на связи. Вы планируете использовать Node.js для создания этого веб-приложения, и вы хотите начать с проверки почтовых индексов пользователей, чтобы убедиться, что они живут достаточно близко для доставки. Вопрос в том, нужно ли вам создать собственный инструмент, чтобы сделать это возможным?

К счастью для нас, ответ - нет, npm можно использовать для установки пакетов Node.js, библиотек кода, написанных другими, которые вы можете использовать для добавления определенных функций в ваше приложение. На самом деле, есть пакет для проверки местоположения на основе почтовых индексов. Мы рассмотрим этот пакет поближе и как его установить чуть позже.

Создание модуля Node.js

Приложение Node.js в конечном итоге состоит из множества файлов JavaScript. Чтобы ваше приложение оставалось организованным и эффективным, эти файлы должны иметь доступ к содержимому друг друга при необходимости. Каждый файл, чей код является коллективно связанным, называется модулем. Давайте снова посмотрим на наше приложение и добавим к нему несколько положительных сообщений. Вы можете создать файл messages.js со следующим кодом:

let messages = [«Вы великолепны!», «Вы можете достичь всего!», «Успех в вашем будущем!»];

Хранение этих сообщений отдельно от кода, который вы напишите для их отображения, сделает ваш код более организованным. Чтобы управлять этими сообщениями в другом файле, вам нужно изменить определение переменной let, чтобы использовать объект экспорта, например так:

exports.messages = [«Вы великолепны!», «Вы можете достичь всего!», «Успех в вашем будущем!»];

Как и другие объекты JavaScript, вы добавляете свойство messages в объект экспорта Node.js, который может использоваться несколькими модулями.

ПРИМЕЧАНИЕ. Объект экспорта на самом деле является свойством объекта модуля. module - это и имя файлов кода в Node.js, и один из его глобальных объектов. Использование экспорта по сути является сокращением для module.exports.

Модуль готов к тому, чтобы быть востребованным (импортированным) другим файлом JavaScript. Вы можете проверить это, создав еще один файл с именем printMessages.js, цель которого состоит в том, чтобы циклически проходить по сообщениям и регистрировать их на консоли с помощью кода, приведенного в листинге 1. Сначала требуется локальный модуль, используя объект require и имя файла модуля ( с расширением .js или без него). Затем обратитесь к массиву модуля с помощью переменной, настроенной в printMessages.js.

Листинг 1. Регистрация сообщений для консоли в printMessages.js

const messageModule = require ('./ messages'); 1 messageModule.messages.forEach ((m) = & gt; {2 console.log (m);});

  1. Требуется локальный модуль messages.js.
  2. Обратитесь к массиву модуля через messageModule.messages.

require - это еще один глобальный объект Node.js, используемый для локального представления методов и объектов из других модулей. Node.js интерпретирует require ('./ messages'); искать модуль с именем messages.js в каталоге вашего проекта и разрешать коду в printMessages.js использовать любые свойства, добавленные в объект экспорта.

Далее мы будем использовать npm, еще один инструмент для добавления модулей в ваш проект.

Запуск команд npm

С вашей установкой Node.js вы также получили менеджер пакетов Node (npm). Как следует из названия, npm отвечает за управление внешними пакетами (модули, которые другие создали и сделали доступными онлайн) в вашем приложении. Во время разработки приложений npm будет использоваться для установки, удаления и изменения этих пакетов. Ввод npm -l в вашем терминале вызывает список команд npm с краткими пояснениями.

Листинг 2 содержит несколько команд npm, о которых вы захотите узнать.

Листинг 2. Команды Npm, которые нужно знать

  • нпм нач. Инициализирует приложение Node.js и создает файл package.json.
  • npm установить <пакет>. Устанавливает пакет Node.js.
  • нпм публиковать. Сохраняет и загружает созданный вами пакет в сообщество пакетов npm.
  • нпм начало. Запускает приложение Node.js (при условии, что файл package.json настроен для использования этой команды). npm stop завершит работу запущенного приложения.

При использовании npm install <package> добавление --save к вашей команде устанавливает пакет как зависимость для вашего приложения. Добавление --global устанавливает пакет на ваш компьютер для использования в любом месте терминала. Эти расширения команд, называемые флагами, имеют сокращенные формы -S и -g соответственно. npmuninstall <пакет> отменяет действие установки. Если проект требует этого, npm install express -S можно использовать для установки среды Express.js, а npm install express-generator -g - для установки генератора Express.js для использования в качестве инструмента командной строки.

Модули и пакеты

На протяжении всей вашей разработки с Node.js вы будете часто слышать модуль условий и пакет. Вот что вам нужно знать:

  • Модули - это отдельные файлы JavaScript, содержащие код, относящийся к одной концепции, функциональности или библиотеке.
  • Пакеты могут содержать несколько модулей или один модуль. Пакеты используются для группировки файлов, предлагающих соответствующие инструменты.

ПРИМЕЧАНИЕ. «Зависимости» - это модули Node.js, используемые приложением или другим модулем. Если пакет считается зависимостью приложения, он должен быть установлен (в версии, указанной приложением), прежде чем приложение сможет успешно работать.

Если вы хотите включить какую-либо функциональность в свое приложение, скорее всего, есть пакет, который вы можете найти на сайте npmjs.com для выполнения этой задачи. Давайте продолжим и добавим возможность определять местонахождение ваших пользователей на основе их почтового индекса.

Для этого нам нужно установить пакет городов , встроенный для преобразования текстовых адресов в координаты местоположения. Тем не менее, мы до сих пор упускаем одну вещь из этого проекта, прежде чем пакет может быть успешно установлен. Нам нужно правильно инициализировать проект Node.js и создать файл package.json, используемый npm для установки городов, что мы и сделаем в следующем разделе.

Упражнение по быстрой проверке : какой флаг вы используете, если хотите установить пакет на ваш компьютер глобально?

Каждое приложение или модуль Node.js будет содержать файл package.json для определения свойств этого конкретного проекта. Этот файл живет на корневом уровне вашего проекта. Как правило, в этом файле указывается версия вашего текущего выпуска, название приложения и основной файл приложения. Этот файл важен для npm, чтобы сохранять любые пакеты в сообществе узлов в сети.

Для начала создайте папку с именем zip_connection, перейдите в каталог вашего проекта в терминале и используйте команду npm init для инициализации вашего приложения. Вам будет предложено ввести название вашего проекта, версию приложения, краткое описание, имя файла, из которого вы запустите приложение (точка входа), тестовые файлы, репозитории git, ваше имя (автор). ) и лицензионный код. На данный момент просто введите свое имя и нажмите Enter, чтобы принять все параметры по умолчанию. Как только вы подтвердите все эти изменения, вы должны увидеть новый файл package.json в каталоге вашего проекта, напоминающий содержимое листинга 3.

Листинг 3. Результат вашего файла package.json в вашем проекте zip_connection

{"name": "zip_connection", "version": "1.0.0", "description": "Приложение для продвижения продуктов местного производства.", "main": "printMessages.js", "scripts": {" test ":" echo \ "Ошибка: тест не указан \" & amp; выход 1 "}," author ":" Jon Wexler "," license ":" ISC "}

В этом примере package.json содержит имя, версию, описание, начальный файл, пользовательские сценарии, автора и лицензию.

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

НПМ установить города - сохранить

Также с этой установкой ваша папка проекта только что получила новую папку с именем node_modules. Содержимое кода только что установленного пакета городов находится в этой папке.

СОВЕТ: Флаг --save сохранит пакет city как зависимость для этого проекта. Проверьте ваш файл package.json сейчас, чтобы увидеть, как пакет перечислен под зависимостями. Поскольку ваша папка node_modules будет увеличиваться в размере, не рекомендуется включать ее, когда вы публикуете код проекта в Интернете. Однако любой, кто загружает проект, может ввести npm install для автоматической установки всех зависимостей проекта, перечисленных в этом файле.

Протестируйте этот новый пакет, добавив строки из листинга 4 в main.js. Начнем с того, что нам потребуется пакет локально установленных городов, и сделаем его доступным в этом файле. Затем мы будем использовать метод zip_lookup из пакета city, чтобы найти город по его почтовому индексу. Результат сохраняется в переменной myCity.

Листинг 4. Реализация пакета city в файле main.js

постоянные города = требуют («города»); var myCity = towns.zip_lookup (10016); console.log (MyCity);

Код выше делает следующее:

  1. Требовать пакет городов.
  2. Сохраните полученный город, используя метод zip_lookup.
  3. Зарегистрируйте результаты на своей консоли.

Полученные данные из этого почтового индекса выводятся на консоль, как показано в листинге 5.

Листинг 5. Пример результата запуска main.js в терминале

{почтовый индекс: '10016', штат_аббр: 'NY', широта: '40 .746180 ', долгота:' -73.97759 ', город:' Нью-Йорк ', штат:' Нью-Йорк '}

Метод city zip_lookup возвращает объект JavaScript с координатами.

Упражнение по быстрой проверке : какая команда терминала инициализирует приложение Node.js с файлом package.json?

Создание простого веб-сервера в Node.js

Техническое сообщество в восторге от Node.js и его использования JavaScript в качестве серверного языка, и это именно то, что мы собираемся сделать сейчас: создать его!

В этом разделе рассматриваются некоторые основные функции модуля http, библиотеки кода Node.js, используемой для обработки запросов через Интернет. Через несколько коротких шагов вы преобразуете несколько строк JavaScript в приложение, с которым вы можете общаться в веб-браузере. Веб-серверы являются основой большинства веб-приложений Node.js. Они позволяют загружать изображения и веб-страницы HTML пользователям вашего приложения.

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

С Node.js вы можете использовать модуль http, чтобы получить веб-сервер с достаточной функциональностью, созданной за считанные часы.

Понимание веб-серверов

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

Веб-серверы и HTTP

Веб-сервер - это программное обеспечение, предназначенное для ответа на запросы через Интернет путем загрузки или обработки данных. Думайте о веб-сервере как о банковском кассире, чья задача - обработать ваш запрос на ввод, вывод или просто просмотр денег на вашем счете. Так же, как кассир банка следует протоколу, чтобы гарантировать, что он обрабатывает ваш запрос правильно, веб-серверы следуют протоколу передачи гипертекста (HTTP), стандартизированной системе, наблюдаемой во всем мире для просмотра веб-страниц и отправки данных через Интернет.

Один из способов взаимодействия клиента (вашего компьютера) и сервера - использование HTTP-глаголов. Эти глаголы указывают, какой тип запроса делается. Например, пытается ли пользователь загрузить новую веб-страницу или обновляет информацию на странице своего профиля? Контекст взаимодействия пользователя с приложением является важной частью цикла запрос-ответ.

Вот два наиболее широко используемых метода HTTP, с которыми вы столкнетесь:

  • ПОЛУЧИТЬ. Этот метод используется для запроса информации с сервера. Как правило, сервер отвечает контентом, который вы можете просмотреть в браузере (например, нажав на ссылку, чтобы увидеть домашнюю страницу сайта).
  • СООБЩЕНИЕ. Этот метод используется для отправки информации на сервер. Сервер может ответить HTML-страницей или перенаправить вас на другую страницу приложения после обработки ваших данных (например, заполнения и отправки формы регистрации).

Подумайте, что происходит, когда вы посещаете google.com. За кулисами вы фактически отправляете запрос на серверы Google, который, в свою очередь, отправляет вам ответ, отображая их знаменитую целевую страницу «Поиск Google». Эта взаимосвязь запрос-ответ обеспечивает канал связи между пользователем и приложением. Обратите внимание, что на рисунке 3 показано, как пакет данных отправляется на сервер приложения в форме запроса, и, как только сервер обрабатывает запрос, он выдает пакет данных обратно в форме ответа. Вот как облегчается большинство ваших взаимодействий в Интернете.

Рисунок 3. Веб-сервер отправляет браузеру веб-страницы, изображения и другие ресурсы по запросу

Когда вы вводите URL, который хотите видеть в своем браузере, HTTP-запрос отправляется на физический компьютер в другом месте. Этот запрос содержит некоторую информацию, указывающую, хотите ли вы загрузить веб-страницу или отправить информацию на этот компьютер.

Вы можете создать красивое приложение со множеством наворотов, но в основе лежит веб-сервер, обеспечивающий связь через Интернет. Эти концепции будут иметь больше смысла, чем больше практики вы получаете. А пока давайте начнем строить наш веб-сервер.

Упражнение по быстрой проверке : что веб-сервер получает от клиента и что он отправляет обратно?

Чтобы начать работу с веб-приложением Node.js, вам сначала нужно инициализировать проект в папке проекта на терминале. Откройте окно терминала и создайте новый каталог с именем simple_server с помощью mkdir. Вы можете инициализировать проект с помощью npm init.

ПРИМЕЧАНИЕ: npm означает менеджер пакетов Node. Ваши проекты узлов используют этот инструмент для установки и сборки приложений Node.js.

Выполнение команды npm init инициирует запрос на создание файла package.json (рисунок 4). Как подсказывает подсказка, в этом файле вы выполните настройку основных параметров приложения Node.js.

Рисунок 4. Заполнение запросов инициализатора Node.js

На данный момент вы можете добавить main.js в качестве точки входа, краткое описание, ваше имя как автора и выбрать использование значений по умолчанию, предлагаемых нажатием клавиши ввода, пока не будет достигнут конец приглашения.

Затем вам будет предложено подтвердить настройки с помощью предварительного просмотра файла package.json. Нажмите Enter для подтверждения и возврата к обычному терминалу.

Когда вы установили Node.js в начале этой статьи, была также установлена ​​основная библиотека. В этой библиотеке есть модуль http, о котором мы говорили ранее. Это то, что вы будете использовать для создания своего веб-сервера. Мы также будем использовать другой основной модуль, называемый url, для проверки содержимого URL, который мы посещаем в веб-браузере.

ПРИМЕЧАНИЕ. Помните, что модули в Node.js - это библиотеки кода, которые поставляются упакованными, чтобы предложить определенную функциональность вашему приложению. Здесь модуль http помогает вам общаться через Интернет с помощью HTTP.

В текстовом редакторе создайте новый файл с именем main.js и сохраните его в папке проекта, содержащей созданный выше файл package.json. Этот файл будет служить основным файлом приложения, и именно там ваше приложение будет буквально обслуживать веб-страницы для ваших пользователей. В следующем приложении мы будем использовать пакет city для определения города на основе предоставленного почтового индекса. Мы получим почтовый индекс в конце URL-адреса, параметр запроса. Этот параметр следует по пути URL, начиная с знака вопроса и пары ключ-значение. В нашем примере мы будем использовать zipCode в качестве ключа и предоставим ему некоторое значение почтового индекса. Например, если я зайду на http: // localhost: 3000 /? ZipCode = 10016, я извлеку почтовый индекс 1006 и обнаружу, что город Нью-Йорк!

Прежде чем проанализировать каждый аспект того, что мы собираемся построить, давайте посмотрим на весь код. Первая строка кода требует, чтобы вы импортировали определенные модули ядра Node.js, называемые http и url. Мы сохраняем эти два модуля вместе с модулем города как константы, потому что мы не ожидаем, что это значение изменится, как обычная переменная. Мы используем переменную http как ссылку на модуль http для создания сервера. В ES6 принято структурировать функцию обратного вызова с параметрами в скобках, за которыми следует ⇒ вместо ключевого слова function. В этом блоке кода мы используем параметр response в функции обратного вызова для отправки содержимого обратно по запросу пользователя. В первой строке используется метод writeHead для определения некоторых основных свойств HTTP-заголовка ответа. В этом случае мы возвращаем код ответа 200 и тип содержимого html, чтобы указать, что сервер успешно принял запрос и вернет содержимое в форме HTML. Этот код принимает экземпляр сервера, сервер и запускает метод listen, чтобы указать, что сервер готов к входящим запросам на порту 3000. Прежде чем отправить ответ, мы используем модуль url для извлечения запроса в конце URL-адреса запроса, используя url.parse (request.url, true) .query ;.

Используя оператор if, мы проверяем, есть ли параметр почтового индекса, который мы можем использовать с query.zipCode. Если это так, мы используем его значение в нашей строке towns.zip_lookup (query.zipCode) и цепочке .city, чтобы извлечь название города из результатов. В противном случае мы устанавливаем город как «не найденный». В конце мы возвращаем HTML-код на экран пользователя с текстом и городом, связанным с предоставленным почтовым индексом.

Листинг 6. Простой код веб-приложения для main.js

постоянные города = требуют («города»); const url = require ('url'); const http = require ('http'); const app = http.createServer ((запрос, ответ) = & gt; {var city, query; query = url.parse (request.url, true) .query; if (query.zipCode) city = towns.zip_lookup (query. zipCode) .city; else city = "not found" response.writeHead (200, {"Content-Type": "text / html"}); response.write (`& lt; h1 & gt; город, в котором вы находитесь - $ { city}. & lt; / h1 & gt; `); response.end ();}); app.listen (3000);

  • постоянные города = требуют ('города') ;: Требуются необходимые модули.
  • const app = http.createServer ((запрос, ответ) = & gt ;: настройка сервера и извлечение параметров запроса.
  • if (query.zipCode) city = towns.zip_lookup (query.zipCode) .city ;: Проверка результатов по городу по почтовому индексу.
  • response.writeHead (200, {"Content-Type": "text / html"}) ;: Настройка ответа.
  • app.listen (3000) ;: указание серверу прослушивать порт 3000.

Вот оно во всей красе! Не так страшно. Всего за несколько строк кода вы также можете создать такой веб-сервер. Попробуйте!

ПРИМЕЧАНИЕ. Если вы не укажете номер порта, ваша операционная система выберет порт для вас. Этот номер порта вы скоро будете использовать для подтверждения через веб-браузер, что ваш веб-сервер работает.

Обратные вызовы в Node.js

Частью того, что делает Node.js таким быстрым и эффективным, является использование обратных вызовов. Обратные вызовы не являются новыми для JavaScript, но они в подавляющем большинстве случаев используются в Node.js и поэтому заслуживают упоминания.

Обратный вызов - это, по сути, анонимная функция (функция без имени), которая устанавливается для вызова, как только завершается другая функция. Преимущество обратных вызовов заключается в том, что вам не нужно ждать завершения исходной функции, прежде чем будет запущен другой код.

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

В примере веб-сервера http входящие запросы от клиента принимаются по мере поступления и затем передают запрос и ответ в виде объектов JavaScript в функцию обратного вызова.

Предупреждение: имена методов чувствительны к регистру. Например, использование createserver () приведет к ошибке.

Метод createServer () генерирует новый экземпляр http.Server, встроенный класс Node.js с инструментами для оценки HTTP-связи. Благодаря этому вновь созданному экземпляру сервера ваше приложение готово получать HTTP-запросы и отправлять HTTP-ответы. Аргумент в createServer () является функцией обратного вызова, которая вызывается всякий раз, когда на сервере происходит определенное событие. Например, после запуска сервера и доступа к корневому URL-адресу вашего приложения (домашней странице) событие HTTP-запроса вызовет этот обратный вызов и позволит вам запустить некоторый пользовательский код. В этом случае сервер вернет простой HTML-ответ.

ПРИМЕЧАНИЕ. 200 - это код состояния HTTP для «ОК», используемый для указания того, что при возврате содержимого в заголовке ответа HTTP не было проблем. Чтобы получить список других кодов состояния HTTP, введите http.STATUS_CODES в оболочке Node.js REPL.

Прямо под этой строкой вы пишете одну строку HTML в ответе с помощью write () и закрываете ответ с помощью end (). Вы должны завершить свой ответ с помощью end (), чтобы сообщить серверу, что вы больше не пишете контент. В противном случае соединение останется открытым для отправки большего количества ответа, и сервер в конечном итоге никогда не сочтет ответ завершенным.

С этим кодом вы готовы запустить приложение Node.js из терминала.

Упражнение по быстрой проверке : почему вы должны использовать const вместо var для хранения HTTP-сервера в вашем приложении?

Последний шаг очень прост: перейдите в каталог вашего проекта с помощью терминала и запустите узел main.js в окне терминала. Далее откройте любой браузер по адресу localhost: 3000. Вы не увидите никаких признаков в окне терминала, что сервер запущен, но вскоре вы увидите в браузере, что все работает правильно. Окно вашего терминала должно напоминать рисунок 5.

Рисунок 5. Запуск базового сервера Node.js

Для начала в окне браузера должно отображаться, что город не найден. Затем попробуйте добавить почтовый индекс в качестве параметра запроса, посетив http: // localhost: 3000 /? ZipCode = 10016. В окне браузера должен отображаться город как Нью-Йорк, как показано на рисунке ниже. Поздравляем! Ваше первое веб-приложение Node.js запущено и работает. Это большой и собирается стать больше и лучше.

Это большой и собирается стать больше и лучше

Рисунок 6. Вы в Нью-Йорке!

Чтобы остановить приложение, введите Ctrl + C в окне терминала. Вы также можете закрыть окно терминала, но вы рискуете не закрыть приложение должным образом, и оно может продолжать работать за кулисами (требуя больше магии командной строки, чтобы убить процесс).

Упражнение по быстрой проверке : когда вы переходите на localhost: 3000 во время работы вашего сервера, какой тип HTTP-запроса вы ожидаете?

Резюме

В этой статье мы установили Node.js, узнали о npm и о создании модулей Node.js, а также о том, что Node.js имеет встроенную функциональность для создания веб-серверов через модуль http. Мы настроили новое приложение Node.js через файл package.json. Используя модуль http и createServer (), мы с минимальными усилиями создали веб-сервер, который стал основой для создания надежных приложений с Node.js, которые мы смогли запустить через терминал. Наконец, мы использовали пакеты городов на нашем http-сервере, чтобы найти города по их почтовым индексам и ответить именем города в браузере пользователя.

Надеюсь, вы еще больше заинтересованы в изучении Node.js, чем в начале этой статьи. Если вы хотите увидеть больше, скачать бесплатно первая глава получить программирование с Node.js и увидеть это слайд-колода на Slideshare.net. Вы можете приобрести книгу Вот со скидкой 37% с помощью кода fccwexler .

Вопрос в том, нужно ли вам создать собственный инструмент, чтобы сделать это возможным?
Json?
Как вы думаете, сколько времени вам понадобится для создания прототипа?
Например, пытается ли пользователь загрузить новую веб-страницу или обновляет информацию на странице своего профиля?
Например, если я зайду на http: // localhost: 3000 /?
Затем попробуйте добавить почтовый индекс в качестве параметра запроса, посетив http: // localhost: 3000 /?