为什么从NodeJS获得此输出?

时间:2016-03-30 16:35:05

标签: node.js

以下是我的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请求的函数执行两次?我的预期输出是看到浏览器中显示的数字与控制台中的值匹配。

1 个答案:

答案 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,另一个是实际请求。