nodejs – http.createServer似乎调用两次

如果我在节点中编写下面的程序:

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在我的控制台上request ended两次 – 我不知道为什么一个HTTP请求导致这个执行两次。

这很正常 – 您的浏览器可以进行多个呼叫。

例如,大多数浏览器都会打电话来抓取/favicon.ico

尝试loginurl:

 console.log(req.url); 

你会看到什么被称为。

您可以使用快递解决scheme,下面给出的问题。

 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");