Подтвердить что ты не робот

Nodejs - http.createServer, похоже, дважды звонит

Если я пишу следующую программу в node:

  http.createServer(function (req, res) {

    if( req.method == 'GET' ) {
      var body = ''; req.on('data', function(data) { body += data });
      req.on('end',  function() {
        console.log('request ended')
      });
    }

    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('142\n');
  }).listen(3500);

И затем нажмите на сервер с помощью http://xxx.xx.xxx.xx:35010, я дважды вижу request ended на моей консоли - я не уверен, почему один HTTP-запрос вызывает его выполнение дважды.

4b9b3361

Ответ 1

Это нормально - ваш браузер делает несколько вызовов.

Большинство браузеров делают вызов для захвата /favicon.ico например.

Попробуйте зарегистрировать URL:

console.log(req.url);

и вы увидите, что называется.

Ответ 2

вы можете использовать экспресс решение проблемы дается ниже.

var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());

app.post('/user',function(req, res){
    res.writeHead(200, {'Content-Type': 'text/plain'});
    console.log("Hello World");
    console.log(req.url);
    res.end('/user');
})
app.listen(3002);
console.log("Server running on 3002 port");