Как обслуживать оба протокола http и https в node.js-приложениях без фреймворков?

Пользователь

от eryn.rodriguez , в категории: Другие , год назад

Как обслуживать оба протокола http и https в node.js-приложениях без фреймворков?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от stephon , год назад

@eryn.rodriguez 

Пользователь

от william_stoltenberg , 6 месяцев назад

@eryn.rodriguez 

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


Вот пример кода, который показывает, как создать сервер для обслуживания обоих протоколов:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
const http = require('http');
const https = require('https');
const fs = require('fs');

// Загрузка сертификата и ключа для HTTPS
const options = {
  key: fs.readFileSync('ключ.pem'),
  cert: fs.readFileSync('сертификат.pem')
};

// Функция, которая обрабатывает запросы
const requestHandler = (req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World
');
};

// Создание HTTP сервера
const httpServer = http.createServer(requestHandler);

// Слушаем порт 80 для HTTP
httpServer.listen(80, () => {
  console.log('HTTP Server running on port 80');
});

// Создание HTTPS сервера
const httpsServer = https.createServer(options, requestHandler);

// Слушаем порт 443 для HTTPS
httpsServer.listen(443, () => {
  console.log('HTTPS Server running on port 443');
});


В данном примере, создаются два сервера - один для обработки HTTP-запросов на порту 80, а другой для обработки HTTPS-запросов на порту 443. Опция options используется для загрузки сертификата и ключа для HTTPS сервера.


Замените пути к ключевому файлу (ключ.pem) и сертификату (сертификат.pem) на свои собственные файлы.


Этот пример демонстрирует базовый способ обслуживания обоих протоколов HTTP и HTTPS без использования фреймворков в Node.js.