В этом руководстве вы узнаете о веб-фреймворке Node.js Express и начнете создавать простой веб-сервер.
Express — это минималистичный и гибкий веб-фреймворк для Node.js и предоставляет набор функций, подходящих для создания веб-приложений.
Кроме того, Express предоставляет утилиты HTTP, которые позволяют быстро и легко разрабатывать API. Он также подходит для создания API для мобильных приложений.
Когда приложение node.js получает HTTP-запрос, оно передает запрос. Например:
https://localhost:3000/
Когда Express видит маршрут /
, он выполняет функцию для обработки запроса, например, возвращает часть контента клиенту. Функция, которая обрабатывает маршрут, называется обработчиком маршрута.
Установка
Прежде чем использовать, вам необходимо установить его с помощью следующей команды npm
:
npm install express
Если вы используете macOS или Linux, вместо этого вы можете использовать команду sudo npm
.
sudo npm install express
Создание
- Сначала создайте новый каталог проекта с именем
express-server
.
mkdir express-server
- Во-вторых, запустите команду
npm init --yes
:
npm init --yes
- В-третьих, создайте файл
index.js
со следующим кодом:
const express = require("express"); const app = express(); app.get("/",(request, response) => { response.send("Hi there"); }); app.listen(3000,() => { console.log("Listen on the port 3000..."); });
Как это работает:
- Сначала загрузите модуль Express:
const express = require('express');
express
— это функция, которая возвращает экземпляр приложения Express.
- Во-вторых, вызовите функцию
express()
, чтобы получить экземпляр приложения:
const app = express();
- В-третьих, определите обработчик маршрута, который обрабатывает HTTP-запрос GET к маршруту сайта
/
app.get('/',(req, res) => { res.send('Hi there'); });
Метод get()
имеет два параметра:
- Первый параметр — это маршрут. В данном случае это корень сайта
/
. - Второй параметр — это функция обратного вызова с двумя параметрами:
request
иresponse
.
request
представляет собой запрос HTTP, а параметр response
описывает ответ HTTP. Это экземпляры классов Request и Response. У них есть много полезных свойств и методов для работы с HTTP-запросами и ответами.
В этом примере мы вызываем метод send()
объекта ответа HTTP для отправки обратно простого текста.
Наконец, укажите node.js прослушивать HTTP-запрос на порту 3000:
app.listen(3000,() => { console.log("Listen on the port 3000..."); });
Чтобы запустить приложение, вы можете открыть терминал и ввести следующую команду:
node index.js
Если вы видите следующий вывод, это означает, что приложение работает успешно:
Listen on the port 3000...
В противном случае вам необходимо перепроверить приведенный выше код на наличие опечаток.
Чтобы отправить запрос HTTP GET в приложение Express, вы можете открыть веб-браузер и ввести следующий URL-адрес:
http://localhost:3000/
И вы увидите следующее сообщение в веб-браузере:
Hi there
Чтобы добавить другой маршрут, например, /about
, вы добавляете новый обработчик маршрута в файл index.js
следующим образом:
const express = require("express"); const app = express(); app.get("/",(request, response) => { response.send("Hi there"); }); app.get("/about",(request, response) => { response.send("<h1>About</h1>"); }); app.listen(3000,() => { console.log("Listen on the port 3000..."); });
Чтобы запустить новое приложение, вам нужно остановить текущее приложение и запустить его снова.
При переходе по следующему URL-адресу:
http://localhost:3000/about
Вы увидите следующее содержимое:
About
При просмотре исходного кода страницы вы увидите следующий HTML-код:
<h1>About</h1>
Конвенция сообщества
Если вы посмотрите на код в другом месте, вы найдете такие параметры обработчиков маршрутов:
app.get("/about",(req, res) => { res.send("<h1>About</h1>"); });
В этом синтаксисе req
означает запрос, а res
— ответ. Это соглашение сообщества экономить время на наборе текста. Мы будем следовать этому соглашению из следующего урока.