Как создать http-сервер с помощью Node.js?

Как мне создать http-сервер, который будет работать на порту 9999 и занимается следующей задачей:

  • Анализирует аргумент коллбека request, а именно его свойство headers.

  • В ответ присылает все значения из headers в формате:

    name: value
    name: value
    
  • Content-Type должен быть выставлен как text/plain?

'use strict';

const http = require('http');

const server = http.createServer(function (request,responce) {
    responce.setHeader('Content-Type','text/plain, charset=utf-8');
    responce.setHeader('Content-Type','text/plain', {name: +'value\n'});
    responce.setHeader('Content-Type','text/plain', {name: +'value\n'});
    responce.end('ok');
});

const port = 9999;

server.listen(port);

Ответы (3 шт):

Автор решения: Sergei Kirjanov

Вот так через ":":

const data = Object.entries(request.headers).map(pair=>pair.join(": ")).join('\n');
→ Ссылка
Автор решения: Samir Gulyamov

'use strict';

const http = require('http');

const server = http.createServer(function(request, response) {
   response.setHeader('Content-Type','text/plain');
  
   let value='';
   const requestHeaders = request.headers;
   for (const name in requestHeaders) {
      value = value + name +':'+ requestHeaders[name]+ '\n';
   }
   response.end(value); 
   
});

const port = 9999;
server.listen(port);
 

→ Ссылка
Автор решения: Alexander Yukal

Создать http-server в принципе не сложно, но реализовать полноценную работу сервера с обработчиками запросов, событий, данных, ошибок и т.п. - задача трудоемкая и затрагивает очень много тем, глубокого познания Node.js и принципы работы с потоками, событиями, сокетами, состоянием, http / https протоколами и многого другого.

Вот здесь можете посмотреть один из примеров реализации серверной части без каких либо фреймворков. Ну или можете реализовать свой сервер с помощью Express.js или Nest.js

→ Ссылка