суббота, 20 июля 2013 г.

Принципиальная разница POST и GET запросов для NodeJs

На момент срабатывания колбека обратки запроса в http сервера, Get запрос полностью уже обработан, все  его данные полученные, потому что такой запрос приходит без тела, только с заголовками. А вот с Post другая история - когда колбек срабатывает, заголовки уже пришли, а вот боди, еще в пути, и обработать его в колбеке мы можем только подписавшись на событие потока Readable, который у нас представлен, его наследником http.InputMessage обьектом req.

Пример:
function(req, res) {
...........
 var body = '';
 req
    .on('readable', function() {
       body += req.read();

       if(body.length > 1e4) {
         res.statusCode = 413;
         res.end('Your messafe is too big for my little chat');
       }
     })
     .on('end', function() {
       try {
         body = JSON.parse(body);
       }catch(e) {
         res.statusCode = 400;
         res.end('Bad Request');
         return;
       }
         chat.publish(body.message);
         res.end('ok');
       });
}

Комментариев нет:

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