我是node.js的新手并在线学习教程。 我正在尝试以下代码:
var http = require("http");
// create a server
http.createServer(function(req, res) {
console.log("Received Request");
res.writeHead(200, {'Content-Type':'application/json'});
res.end("{'status':'200', 'message':'Hello World'}");
console.log("Response Sent");
}).listen(process.env.PORT, process.env.IP);
我确实收到了正确的回复,但在控制台中输出是:
Received Request
Response Sent
Received Request
Response Sent
我想知道为什么我的代码会运行两次?我犯了一些错误吗? 请帮忙 !!
答案 0 :(得分:3)
调试的最佳方法是检查网址
var http = require("http");
// create a server
http.createServer(function(req, res) {
console.log(req.url);//add this line, I hope it will help
console.log("Received Request");
res.writeHead(200, {'Content-Type':'application/json'});
res.end("{'status':'200', 'message':'Hello World'}");
console.log("Response Sent");
}).listen(process.env.PORT, process.env.IP);
另外,正如Bassam Rubaye指出的那样,很可能是因为你的情况下的图标
答案 1 :(得分:2)
当您使用浏览器访问URL时,浏览器将发送对favicon的请求,然后发送另一个内容请求,这就是您看到两个请求的原因!
使用PostMan并请求相同的网址,您应该只看到一个请求。
答案 2 :(得分:2)
没错 - 这是正常的!您的浏览器发出多个请求。在nodejs - http.createServer seems to call twice处有一个类似的答案。
希望你学习node.js很开心!