request — объект http.IncomingMessage
response — объект http.ServerResponse

Каркас сервера

Каркас сервера выглядит так:

var http = require('http');   //подключение модуля http

//функция, обрабатывающая запрос и ответ сервера
function accept(request, response){
  
}
http.createServer(accept).listen(8080); //создание сервера, прослушка 8080 порта

Функцию accept необязательно выносить отдельно, она вполне может находиться прямо в функции создания сервера как безымянная функция.
Внутри функции accept происходит обработка запроса клиента и формирование ответа сервера (отправка заголовков и тела).

Формирование ответа

function accept(request, response){
  response.writeHead(200, {
      'Content-Type': 'text/plain',
      'Cache-Control': 'no-cache'
  });   //отправка заголовков и статуса
  response.write("Hello world");   //отправка тела ответа
  response.end();
}

Обработка запроса

Чтобы обработать путь запроса и получить передаваемые параметры, необходимо подключить еще два модуля:

var url = require('url');   //извлекает части url (path, query string)
var querystring = require('querystring');  //парсит строку параметров или тело POST-запроса
function accept(request, response){
  var pathname = url.parse(request.url).pathname;
}

Отследить, когда запрос будет полностью передан, можно с помощью события end:

function accept(request, response){
  request.addListener('end', function (){});
}

Node-static

Удобную работу со статическими файлами обеспечивает модуль node-static.

var static = require('node-static');
var file = new static.Server('.');
function accept(request, response){
  file.serve(req, res);
}

0 комментариев

Оставить комментарий

*Доступные HTML-теги: a, abbr, blockquote, code, pre, del, i, em, strong, b, strike
*Не будет опубликован