Node.js - Веб модуль

Что такое веб-сервер?

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

Node.js - Web Module

Веб-сервер - это piece of software, который отвечает на запросы из веб-браузеров. Когда вы вводите URL в свой браузер, вы, по сути, просите веб-сервер выдать вам конкретную веб-страницу. Сервер затем находит эту страницу и отправляет ее обратно в ваш браузер.

Давайте разберем это с помощью простого аналога:

  1. Вы (клиент) заходите в библиотеку (Интернет).
  2. Вы просите библиотекаря (веб-сервер) о конкретной книге (веб-странице).
  3. Библиотекарь находит книгу и передает ее вам.
  4. Вы читаете книгу (ваш браузер отображает веб-страницу).

Просто, правда? Теперь давайте посмотрим, как мы можем создать свой собственный веб-сервер с использованием Node.js!

Архитектура веб-приложения

Прежде чем приступить к программированию, давайте поймем базовую архитектуру веб-приложения. Это как понимание чертежа дома перед его строительством.

Типичное веб-приложение состоит из трех основных компонентов:

  1. Клиент: Это usually веб-браузер (например, Chrome или Firefox), который отправляет запросы на сервер.
  2. Сервер: Это то место, где работает наше приложение Node.js. Он принимает запросы от клиентов и отправляет ответы.
  3. База данных: Это то место, где мы храним и получаем данные. Мы не будем рассматривать базы данных в этом руководстве, но полезно знать, что они существуют!

Вот простая диаграмма для проиллюстрирования этого:

[Клиент] <---> [Сервер] <---> [База данных]

Стрелки представляют собой поток данных между этими компонентами. Круто, правда?

Создание веб-сервера с использованием Node

Теперь давайте脏 our hands и создадим простой веб-сервер с использованием Node.js. Не волнуйтесь, если вы никогда не программировали раньше - мы пройдем это шаг за шагом!

Во-первых, мы должны использовать встроенный модуль Node http. Этот модуль позволяет нам создать сервер, который может обрабатывать HTTP-запросы.

const http = require('http');

const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, World!');
});

server.listen(3000, 'localhost', () => {
console.log('Server running at http://localhost:3000/');
});

Давайте разберем это:

  1. Мы require модуль http, который предоставляет нам инструменты для создания сервера.
  2. Мы используем http.createServer() для создания нового сервера. Эта функция принимает коллбэк-функцию, которая будет выполняться каждый раз, когда в сервер поступает запрос.
  3. В коллбэк-функции мы устанавливаем код состояния 200 (что означает "OK"), устанавливаем тип контента на plain text и отправляем "Hello, World!" в ответ.
  4. Наконец, мы говорим серверу listen на порту 3000 на localhost.

Чтобы запустить этот сервер, сохраните код в файл (например, server.js), откройте терминал, перейдите в директорию, содержащую файл, и запустите:

node server.js

Теперь, если вы откроете браузер и перейдете на http://localhost:3000, вы должны увидеть "Hello, World!". Поздравляю, вы только что создали свой первый веб-сервер!

Создание веб-клиента с использованием Node

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

Вот простой клиент, который отправляет GET-запрос на наш сервер:

const http = require('http');

const options = {
hostname: 'localhost',
port: 3000,
path: '/',
method: 'GET'
};

const req = http.request(options, (res) => {
console.log(`statusCode: ${res.statusCode}`);

res.on('data', (d) => {
process.stdout.write(d);
});
});

req.on('error', (error) => {
console.error(error);
});

req.end();

Давайте разберем это:

  1. Мы снова require модуль http.
  2. Мы настраиваем параметры для нашего запроса, включая хост, порт, путь и метод.
  3. Мы создаем запрос с использованием http.request(), передавая наши параметры и коллбэк-функцию.
  4. В коллбэк-функции мы логируем код состояния и настраиваем обработчик события 'data', который будет логировать любые данные, полученные от сервера.
  5. Мы также настраиваем обработчик ошибок.
  6. Наконец, мы вызываем req.end() для отправки запроса.

Сохраните это в файл под названием client.js и запустите его с помощью node client.js. Вы должны увидеть код состояния (200) и сообщение от сервера ("Hello, World!") в вашем терминале.

Заключение

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

помните, каждый expert когда-то был начинающим. Continue practicing, continue learning, и, что самое главное, получайте удовольствие! Мир веб-разработки обширен и увлекателен, и вы только что сделали свои первые шаги в него. Удачи в программировании!

Credits: Image by storyset