以下是我的NodeJS计划。
var http = require("http");
var x = 0;
http.createServer(function(request, response){
response.writeHead(200);
console.log("x = " + x);
x += 1;
response.write("Hello Michael. This page has been requested [" + x + "] times!");
response.end();
}).listen(8080);
当我第一次在浏览器中点击应用程序时,浏览器的输出是:
Hello Michael. This page has been requested [1] times!
但是,在控制台(即cmd.exe)中,我看到:
x = 0
x = 1
如果我重新加载浏览器,我会看到:
Hello Michael. This page has been requested [3] times!
控制台现在输出:
x = 2
x = 3
为什么处理HTTP请求的函数执行两次?我的预期输出是看到浏览器中显示的数字与控制台中的值匹配。
答案 0 :(得分:3)
检查template <typename T>
static bool equals(const std::vector<T> &a, const std::vector<T> &b)
{
return std::equal(a.begin(), a.end(), b.begin());
}
template <typename T>
static bool equals(const std::vector<T *> &a, const std::vector<T *> &b)
{
return std::equal(a.begin(), a.end(), b.begin()
[](T* ap, T* bp) -> bool { return *ap == *bp; });
}
,您会看到其中一个用于request.url
,另一个是实际请求。