我之前用节点进行了一些实验
以下代码输出" aaa"控制台,浏览器一直在等待响应,正如预期的那样。
var http = require("http");
http.createServer(function (req, res) {
//res.writeHead(200);
console.log("aaa");
//res.end("hello");
//console.log("test111");
//res.end("bye");
}).listen(5555);
输出:
aaa
但是,一旦我取消评论第一个res.end,节点就会写出" aaa"一次请求两次到控制台!
var http = require("http");
http.createServer(function (req, res) {
res.writeHead(200);
console.log("aaa");
res.end("hello");
//console.log("test111");
//res.end("bye");
}).listen(5555);
输出:
aaa
aaa
最后,当我取消评论所有内容时,
var http = require("http");
http.createServer(function (req, res) {
res.writeHead(200);
console.log("aaa");
res.end("hello");
console.log("test111");
res.end("bye");
}).listen(5555);
输出:
aaa
test111
aaa
test111
知道为什么每个请求都会执行两次console.log语句吗?
答案 0 :(得分:8)
在第一个示例中,浏览器没有得到回复并停在那里。
在第二个示例中,浏览器 得到回复,然后继续请求第二个请求的favicon。
尝试同时记录请求网址:
var http = require("http");
http.createServer(function (req, res) {
console.log("aaa", req.url);
res.end("bye");
}).listen(5555);
你会看到服务器正在运行:
aaa /
aaa /favicon.ico
答案 1 :(得分:5)