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


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

Веб-сервер обычно относится к серверу веб-сайта, то есть к программе, размещённой на определённом типе компьютера в Интернете. Основная функция веб-сервера — предоставлять услуги просмотра веб-информации. Ему достаточно поддерживать протокол HTTP, формат HTML-документов и URL-адреса, а также работать с веб-браузером клиента.

Большинство веб-серверов поддерживают серверные языки сценариев (PHP, Python, Ruby) и т. д. и используют языки сценариев для извлечения данных из базы данных и возврата результатов в браузер клиента.

В настоящее время тремя наиболее распространёнными веб-серверами являются Apache, Nginx и IIS.


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

  • Клиент- Клиент, как правило, относится к браузеру. Браузер может запрашивать данные с сервера по протоколу HTTP.

  • Сервер- Сервер, как правило, относится к веб-серверу. Он может принимать запросы клиента и отправлять данные ответа клиенту.

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

  • Данные- Уровень данных, как правило, состоит из базы данных.


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

Node.js предоставляет модуль http. Модуль http в основном используется для создания HTTP-серверов и клиентов. Чтобы использовать возможности HTTP-сервера или клиента, необходимо вызвать модуль http. Код выглядит следующим образом:

var http = require('http');

Ниже демонстрируется базовая архитектура HTTP-сервера (с использованием порта 8080). Создайте файл server.js со следующим кодом:

Пример

var http = require('http'); var fs = require('fs'); var url = require('url'); //Создать сервер http.createServer( function (request, response) { //Разобрать запрос, включая имя файла var pathname = url.parse(request.url).pathname; //Вывести имя запрошенного файла console.log("Запрос для " + pathname + " получен."); //Прочитать содержимое запрошенного файла из файловой системы fs.readFile(pathname.substr(1), function (err, data) { if (err) { console.log(err); //Код состояния HTTP: 404 : NOT FOUND // Тип содержимого: text/html response.writeHead(404, {'Content-Type': 'text/html'}); }else{ //Код состояния HTTP: 200 : OK // Тип содержимого: text/html response.writeHead(200, {'Content-Type': 'text/html'}); //Отправить содержимое файла response.write(data.toString()); } //Отправить данные ответа response.end(); }); }).listen(8080); //Консоль выведет следующую информацию console.log('Server running at http://127.0.0.1:8080/');

Далее мы создаём файл index.html в этом каталоге. Код выглядит следующим образом:

файл index.html

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Пример (example.com)</title> </head> <body> <h1>Мой первый заголовок</h1> <p>Мой первый абзац.</p> </body> </html>

Выполните файл server.js:

$ node server.js
Server running at http://127.0.0.1:8080/

Затем мы открываем адрес в браузере:http://127.0.0.1:8080/index.html, и он отображается, как показано на рисунке ниже:

Вывод консоли после выполнения server.js выглядит следующим образом:

Server running at http://127.0.0.1:8080/
Request for /index.html received.     #  客户端请求信息

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

Чтобы создать веб-клиент с помощью Node, необходимо импортировать модуль http. Создайте файл client.js со следующим кодом:

Пример

var http = require('http'); //Параметры запроса var options = { host: 'localhost', port: '8080', path: '/index.html' }; //Функция обратного вызова для обработки ответа var callback = function(response){ //Непрерывно обновлять данные var body = ''; response.on('data', function(data) { body += data; }); response.on('end', function() { //Приём данных завершён console.log(body); }); } //Отправить запрос на сервер var req = http.request(options, callback); req.end();

Откройте новый терминал, запустите файл client.js, и результат вывода будет следующим:

$ node  client.js 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Example(example.com)</title>
</head>
<body>
    <h1>我的第一个标题</h1>
    <p>我的第一个段落。</p>
</body>
</html>

Вывод консоли после выполнения server.js выглядит следующим образом:

Server running at http://127.0.0.1:8080/
Request for /index.html received.   # 客户端请求信息
Другие расширения