Express.js — это упрощенная веб-инфраструктура для Node.js, широко используемой среды выполнения JavaScript. Это позволяет разработчикам быстро создавать веб-серверы и сложные веб-приложения с небольшим количеством кода.

Этот учебный курс научит вас создавать свой веб-сервер Express.js с нуля всего за час. Вы начнете с установки Node.js и создания нового проекта Express.js, а затем перейдете к маршрутизации, промежуточному программному обеспечению и обслуживанию статических файлов. Попутно вы узнаете об основных концепциях и функциях Express.js, таких как запрос и ответ, объекты, промежуточное ПО. и маршрутизация.

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

Для начала на вашем компьютере должен быть установлен Node.js. Если у вас его еще нет, вы можете получить его с официального сайта (https://nodejs.org).

После установки Node.js выполните в терминале следующую команду, чтобы запустить новый проект Express.js:

npm init -y

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

Затем используйте следующую команду для установки пакета Express.js:

npm install express

Это добавит Express.js в ваш пакет и установит его. В качестве зависимости есть файл JSON.

Теперь, когда вы установили Express.js, вы можете приступить к созданию своего первого веб-сервера. Добавьте следующий код в новый файл с именем app.js:

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello, World!');
});

const port = 3000;
app.listen(port, () => {
  console.log(`Server listening on port ${port}`);
});

Этот код запускает приложение Express.js и определяет единственный маршрут «/», который отправляет клиенту «Hello, World!» сообщение. Когда веб-сервер готов обрабатывать запросы, он запускает его на порту 3000 и записывает сообщение в консоль.

Выполните следующую команду в своем терминале, чтобы запустить сервер:

node app.js

В консоли должно появиться сообщение Сервер прослушивает порт 3000. Откройте веб-браузер и перейдите по адресу http://localhost:3000/, чтобы проверить свой сервер. Сообщение Привет, мир! должно появиться в браузере.

Поздравляем! Вы только что закончили настройку своего первого веб-сервера Express.js.

Промежуточное ПО в Express.js относится к функциям, которые вызываются уровнем маршрутизации Express.js перед вызовом обработчика маршрута. Функции промежуточного ПО имеют доступ к объектам запроса и ответа, а также к следующей функции промежуточного ПО в цикле запрос-ответ приложения.

Функции промежуточного ПО можно использовать для выполнения таких действий, как разбор тела запроса, обслуживание статических файлов, аутентификация запросов и изменение объектов запроса или ответа.

Функцию app.use можно использовать для включения промежуточного программного обеспечения в приложение Express.js. В качестве входных данных эта функция добавляет функцию промежуточного программного обеспечения в стек промежуточного программного обеспечения приложения.

Например, вы можете использовать следующий код для использования встроенной функции промежуточного программного обеспечения express.json, которая анализирует входящие запросы с полезными данными JSON и делает содержимое доступным для свойства req.body:

app.use(express.json());

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

function myMiddleware(req, res, next) {
  // Perform some task
  // ...
  // Call the next middleware function
  next();
}

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

app.use(myMiddleware);

Функции промежуточного ПО запускаются в том порядке, в котором они вводятся в стек промежуточного ПО. Это означает, что порядок, в котором функции промежуточного программного обеспечения добавляются в ваше приложение Express.js, имеет решающее значение.

Промежуточное ПО body-parser — это обычный пакет Express.js, который анализирует тела входящих запросов и делает их доступными в поле req.body объекта запроса. Это полезно для работы с HTTP-запросами с полезными данными, такими как запросы POST или PUT с данными в теле запроса.

Сначала вы должны установить промежуточное ПО body-parser в качестве зависимости в вашем приложении Express.js с помощью npm:

npm install body-parser

Затем в вашем файле app.js потребуется модуль body-parser и добавьте его в качестве промежуточного программного обеспечения:

const bodyParser = require('body-parser');
// Add body-parser middleware
app.use(bodyParser.json());

Функция bodyParser.json() возвращает ПО промежуточного слоя, которое анализирует получаемые полезные данные JSON и возвращает данные в свойство req.body.

Для обработки входящих запросов с полезной нагрузкой в ​​кодировке URL используйте функцию bodyParser.urlencoded:

app.use(bodyParser.urlencoded({ extended: true }));

После установки промежуточного программного обеспечения body-parser вы можете получить доступ к телу запроса в своих маршрутах следующим образом:

app.post('/users', (req, res) => {
  console.log(req.body);  // The request body is available on the req.body property
});

Маршрутизация — это важный элемент любого веб-сервера, поскольку он позволяет обрабатывать различные URL-адреса и методы HTTP различными способами. Вы можете определить маршруты в Express.js с помощью приложения. Функции METHOD, где METHOD обозначает обрабатываемый метод HTTP (например, GET, POST, PUT и т. д.).

Например, чтобы установить маршрут, который обрабатывает HTTP-запросы GET по пути «/users», используйте следующий код:

app.get('/users', (req, res) => {
  // Handle the request here
  const user = req.query;
  console.log(user);
  res.send('Users fetched');
});

Здесь функция app.get создает маршрут, который прослушивает HTTP-запросы GET по пути «/users». Функция принимает два аргумента: объект запроса (req) и объект ответа (res). Вы можете использовать эти объекты для доступа к информации о запросе и отправки ответа клиенту.

app.get('/users/:id', (req, res) => {
  // Access the dynamic value using req.params.id
  res.send('User fetched');
});

Поскольку объект req.params содержит динамические значения в пути, вы можете использовать req.params.id для получения параметра id.

В дополнение к методу app.get, Express.js имеет различные дополнительные функции маршрутизации, такие как app.post, app.put, app.delete и другие. Эти подпрограммы можно использовать в ваших маршрутах для обработки различных методов HTTP.

Например, чтобы установить маршрут, который обрабатывает HTTP-запросы POST по пути «/users», используйте следующий код:

app.post('/users', (req, res) => {
  // Handle the request here
});

Для обработки всех методов HTTP в данном месте используйте функцию app.all. В качестве примера:

app.all('/users', (req, res) => {
  // Handle all HTTP methods at the '/users' path
});

Вы можете использовать промежуточную функцию express.static для обслуживания статических файлов с помощью Express.js. В качестве входных данных этот метод принимает путь к каталогу, содержащему статические файлы, и доставляет файлы в этом каталоге клиенту.

Например, чтобы обслуживать статические файлы из «общедоступного» каталога, используйте следующий код:

app.use(express.static('public'));

Это делает все файлы в «общедоступном» каталоге доступными для клиента через корневой путь. Если в «общедоступном» каталоге есть файл с именем style.css, он будет доступен через URL-адрес /style.css.

Указав второй аргумент функции express.static, вы можете определить другой базовый каталог для статических файлов. В качестве примера:

app.use('/static', express.static('public'));

Это делает файлы в «общедоступном» каталоге доступными для клиента через путь «/ static». Например, файл style.css теперь будет доступен по URL-адресу /static/style.css.

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

В заключение, Учебный курс Express.js: от нуля до веб-сервера за один час — это подробный урок, который покажет вам, как создать простой веб-сервер с помощью популярной платформы Node.js, Express. .js. Вы узнали, как установить Node.js и запустить новый проект Express.js, а также как настроить маршрутизацию и промежуточное ПО и обслуживать статические файлы.

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

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

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.