Введение
Express – это веб-фреймворк для Node.js, который позволяет создавать надежные API и веб-серверы более простым и чистым способом. Это легкий пакет, который не скрывает основные функции Node.js.
В этой статье вы установите и используете Express для создания веб-сервера.
Предварительные требования
Если вы хотите следовать этой статье, вам понадобятся:
- A local development environment for Node.js. Follow How to Install Node.js and Create a Local Development Environment.
Этот учебник был проверен с использованием Node v15.14.0, npm
v7.10.0, express
v4.17.1 и serve-index
v1.9.1.
Шаг 1 — Настройка проекта
Сначала откройте окно терминала и создайте новый каталог проекта:
Затем перейдите в только что созданный каталог:
На этом этапе вы можете инициализировать новый проект npm:
Затем вам нужно установить пакет express
:
На этом этапе у вас есть новый проект, готовый к использованию Express.
Шаг 2 — Создание сервера Express
Теперь, когда Express установлен, создайте новый файл server.js
и откройте его в вашем редакторе кода. Затем добавьте следующие строки кода:
Первая строка здесь захватывает основной модуль Express из установленного вами пакета. Этот модуль представляет собой функцию, которую мы затем запускаем на второй строке, чтобы создать нашу переменную app
. Вы можете создать несколько приложений таким образом, каждое со своими собственными запросами и ответами.
Эти строки кода определяют, как наш Express-сервер будет обрабатывать запрос GET
к нашему серверу. Express включает аналогичные функции для запросов POST
, PUT
и т. д., используя app.post(...)
, app.put(...)
и т. д.
Эти функции принимают два основных параметра. Первый – это URL, для которого эта функция должна действовать. В данном случае мы нацеливаемся на '/'
, который является корнем нашего веб-сайта: в данном случае localhost:3000
.
Второй параметр – это функция с двумя аргументами: req
и res
. req
представляет запрос, отправленный на сервер; Мы можем использовать этот объект для чтения данных о том, что клиент запрашивает. res
представляет собой ответ, который мы отправим обратно клиенту.
Здесь мы вызываем функцию на объекте res
, чтобы отправить ответ: 'Успешный ответ.'
.
Наконец, после того как мы настроили наши запросы, мы должны запустить наш сервер! Мы передаем 3000
в функцию listen
, которая указывает приложению на каком порту слушать. Функция, переданная в качестве второго параметра, является необязательной и выполняется при запуске сервера. Это дает нам обратную связь в консоли, чтобы узнать, что наше приложение запущено.
Посмотрите на ваше окно терминала и запустите ваше приложение:
Затем посетите localhost:3000
в вашем веб-браузере. Ваше окно браузера отобразит: 'Успешный ответ'
. Окно вашего терминала отобразит: 'Пример приложения слушает порт 3000.'
.
И вот мы имеем веб-сервер! Однако мы определенно хотим отправить клиенту не только одну строку текста. Давайте кратко рассмотрим, что такое промежуточное программное обеспечение и как настроить этот сервер как сервер статических файлов!
Шаг 3 — Использование промежуточного программного обеспечения
С Express мы можем писать и использовать функции промежуточного программного обеспечения, которые имеют доступ ко всем HTTP-запросам, поступающим на сервер. Эти функции могут:
- Выполнять любой код.
- Вносить изменения в объекты запроса и ответа.
- Завершать цикл запроса-ответа.
- Вызывать следующую функцию промежуточного программного обеспечения в стеке.
Мы можем написать наши собственные функции промежуточного программного обеспечения или использовать сторонние промежуточное программное обеспечение, импортируя их так же, как и любой другой пакет.
Давайте начнем с написания собственного промежуточного программного обеспечения, а затем попробуем использовать некоторое существующее промежуточное программное обеспечение для обслуживания статических файлов.
Для определения функции промежуточного программного обеспечения мы вызываем app.use()
и передаем ей функцию. Вот простая функция промежуточного программного обеспечения для вывода текущего времени в консоли во время каждого запроса:
Вызов next()
указывает промежуточному программному обеспечению перейти к следующей функции промежуточного программного обеспечения, если таковая имеется. Это важно включить в конце нашей функции – в противном случае запрос застрянет в этом промежуточном программном обеспечении.
Мы можем необязательно передавать путь к промежуточному программному обеспечению, которое будет обрабатывать только запросы к этому маршруту. Например:
Передавая '/request-type'
в качестве первого аргумента в app.use()
, эта функция будет работать только для запросов, отправленных на localhost:3000/request-type
.
Вернитесь в ваше окно терминала и запустите ваше приложение:
Затем перейдите по адресу localhost:3000/request-type
в вашем веб-браузере. В вашем окне терминала будет отображаться временная метка запроса и 'Request type: GET'
.
Теперь давайте попробуем использовать существующее промежуточное программное обеспечение для обслуживания статических файлов. Express поставляется с встроенной функцией промежуточного программного обеспечения: express.static
. Мы также будем использовать промежуточное программное обеспечение сторонней компании, serve-index
, чтобы отображать индексное список наших файлов.
Сначала в том же каталоге, где находится сервер express, создайте каталог с именем public
и поместите туда некоторые файлы.
Затем установите пакет serve-index
:
Сначала импортируйте пакет serve-index
в начале файла сервера.
Затем включите промежуточные обработчики express.static
и serveIndex
и укажите им путь к доступу и имя каталога:
Теперь перезапустите свой сервер и перейдите по адресу localhost:3000/public
. Вам будет представлен список всех ваших файлов!
Заключение
В этой статье вы установили и использовали Express для создания веб-сервера. Вы также использовали встроенные и сторонние функции промежуточного программного обеспечения.
Продолжайте обучение с Как использовать объект req в Express, Как использовать объект res в Express и Как определить маршруты и методы HTTP-запросов в Express.
Source:
https://www.digitalocean.com/community/tutorials/nodejs-express-basics