Ответ 1
Это нормально - ваш браузер делает несколько вызовов.
Большинство браузеров делают вызов для захвата /favicon.ico
например.
Попробуйте зарегистрировать URL:
console.log(req.url);
и вы увидите, что называется.
Если я пишу следующую программу в 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-запрос вызывает его выполнение дважды.
Это нормально - ваш браузер делает несколько вызовов.
Большинство браузеров делают вызов для захвата /favicon.ico
например.
Попробуйте зарегистрировать URL:
console.log(req.url);
и вы увидите, что называется.
вы можете использовать экспресс решение проблемы дается ниже.
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");