Веб-сервер — это программное приложение, которое обрабатывает HTTP-запросы, отправленные HTTP-клиентом, например веб-браузером, и, в свою очередь, создает веб-страницу для клиента. Каждый веб-сервер доставляет HTML-документы вместе с изображениями, листами и сценариями.
Большинство веб-серверов поддерживают сценарии на стороне сервера. Он использует языки сценариев, которые назначают серверу приложений задачу извлечения данных из базы данных. Эти серверы выполняют некоторую сложную логику, а затем отправляют ответ HTTP-клиенту через веб-сервер.
Что такое веб-сервер Nodejs?
Фреймворк Nodejs широко используется для создания серверных приложений. Эта структура позволяет создать веб-сервер, который доставляет веб-контент пользователям, запрашивая веб-сервер.
В Nodejs доступно множество модулей, таких как модуль «HTTP» и «запрос». Эти модули помогают обрабатывать запросы, связанные с сервером, в выделенном пространстве веб-сервера. Давайте посмотрим, как создать базовое приложение веб-сервера с помощью Nodejs в этом блоге.
Читать: 5 способов делать HTTP-запросы в Nodejs
Архитектура веб-приложений
Архитектура веб-приложения в целом делится на 4 уровня:
- Клиентский уровень.Клиентский уровень включает веб-браузеры, мобильные приложения, которые отправляют HTTP-запросы на веб-сервер.
- Уровень сервера.Уровень сервера состоит из веб-сервера, который может перехватывать запросы, сделанные клиентами, и передавать немедленный ответ.
- Бизнес-уровень.Бизнес-уровень взаимодействует с уровнем данных через базу данных. Он содержит сервер приложений, используемый веб-сервером для обработки запросов.
- Уровень данных. Этот уровень действует как источник данных или база данных.
Читайте: Идеальная архитектура Nodejs: как это работает технически?»
Создайте веб-сервер Nodejs
Чтобы создать веб-сервер с помощью Nodejs, он обрабатывает входящие запросы асинхронно,
В следующем примере создается веб-сервер Nodejs, содержащийся в файле server.js в его каталоге:
var http = require('http'); // 1 - Import Nodejs core module var server = http.createServer(function (req, res) { // 2 -creating server //handle incomming requests here.. }); server.listen(5000); //3 - listen for any incoming requests console.log('Nodejs web server at port 5000')
Импортируйте модуль HTTP с помощью функции require() в приведенном выше примере. Этот модуль HTTP считается основным модулем Nodejs. Поэтому необходимо установить его с помощью Диспетчера пакетов узлов (NPM).
Делаем следующий шаг, чтобы вызвать метод HTTP createServer() и указать функцию обратного вызова с запросом, пришедшим от клиента.
В конце вызовите метод listen() объекта сервера, который был возвращен методом createServer() с номером порта.
Теперь запустите вышеуказанный веб-сервер, написав команду node server.js в командной строке, и он отобразит сообщение, как показано ниже.
C: \> node server.js Nodejs web server at port 5000 is running
Вот как вы создаете веб-сервер Nodejs, используя метод программирования. Теперь следующие шаги помогут вам обрабатывать HTTP-запросы и отправлять ответ на веб-сервер Nodejs.
Обработка HTTP-запроса
Метод http.createServer() включает параметры запроса и ответа, сгенерированные Nodejs. Чтобы получить информацию о текущем HTTP-запросе, используйте объект запроса.
Такая информация HTTP содержит URL-адрес, заголовок запроса и данные. В следующем примере показана обработка HTTP-запросов и ответов на веб-сервере Nodejs.
var http = require('http'); // Import Nodejs core module var server = http.createServer(function (req, res) { // create web server if (req.url == '/') { // check the URL of the current request // set response header res.writeHead(200, { 'Content-Type': 'text/html' }); / set response content res.write('<html><body><p>This is home Page.</p></body></html>'); res.end(); } else if (req.url == "/student") { res.writeHead(200, { 'Content-Type': 'text/html' }); res.write('<html><body><p>This is student Page.</p></body></html>'); res.end(); } else if (req.url == "/admin") { res.writeHead(200, { 'Content-Type': 'text/html' }); res.write('<html><body><p>This is admin Page.</p></body></html>'); res.end(); } else res.end('Invalid Request!'); }); server.listen(5000); //6 - listen for any incoming requests console.log('Nodejs web server at port 5000')
В приведенном выше сценарии req.url используется для проверки URL-адреса текущего запроса. и отправляет ответ.
Чтобы отправить ответ, установите заголовок ответа с помощью метода writeHead(), а затем напишите строку в качестве тела ответас помощью метода write().
Наконец, веб-сервер Nodejs отправляет ответ с помощью метода end() в соответствии с запросом клиента.
Теперь просто запустите указанный выше веб-сервер, как показано ниже:
C: \> node server.js Nodejs web server at port 5000
Чтобы протестировать пример кода, используйте программу командной строки curl, предустановленную программу, которая поставляется с большинством компьютеров Mac и Linux.
Curl -i http://localhost:5000
После выполнения вышеуказанных шагов теперь вы могли фактически увидеть следующий ответ:
HTTP/1.1 200 OK Content-Type: text/plain Date: Wed, 22 Jan 05:36:05 GMT Connection: keep-alive This is home page
Для пользователей Windows используйте http://localhost:5000 в своем браузере и увидите следующий результат.
http://localhost:5000 This is Home page
Таким же образом используйте http://localhost:5000/student в своем браузере и увидите следующий результат.
http://localhost:5000/student This is student page
Он показывает Неверный запрос для всех других запросов, кроме указанных выше URL.
Отправить ответ JSON
В следующем примере показано, как обслуживать ответ JSON от веб-сервера Nodejs.
var http = require('http'); var server = http.createServer(function (req, res) { if (req.url == '/data') { //check the URL of the current request res.writeHead(200, { 'Content-Type': 'application/json' }); res.write(JSON.stringify({ message: "Hello World"})); res.end(); } }); server.listen(5000); console.log('Nodejs web server at port 5000')
Таким простым способом вы можете создать веб-сервер Nodejs, который будет обслуживать разные ответы для разных функций.
ВЫВОД
В Nodejs мы использовали метод Http.createServer() встроенного HTTP-модуля Nodejs для создания веб-сервера HTTP, который отвечает на запросы, сделанные через порт.
Если вы планируетесоздать веб-приложение Nodejs, мы с радостью создадим его для вас. Свяжитесь с нами для получения более подробной информации о веб-разработке.