NodeJS在11个请求后停止响应

时间:2011-10-19 18:04:45

标签: node.js

http.createServer(function(request, response) {
console.log("New request :"+request.url);
var found = false;
for(var i= 0; i < requests.length; i++){
    match = requests[i];
    if(match.method == request.method && request.url.match(match.regexp))
    {
        console.log("Matched request: "+match.url);
        pg.connect(databaseUrl, function(error, client) {
            if(error)
                processError(response, error);
            else
                match.action(client, request, response);
        });
        found = true;
        break;
    }
}
if(!found)
    processError(response, "Request url does not exist: "+request.url);
}).listen(3000);
sys.puts("Server running... waiting for requests");

大家好。我坚持使用这段代码。每当我调用相同请求11次时,nodejs停止响应,甚至不记录“新请求:”+ request.url。 任何人都知道发生了什么事?

非常感谢。

2 个答案:

答案 0 :(得分:2)

抱歉迟到了。 我发现问题是什么,但不完全理解。 在连接循环中,我使用的函数实际上只是模拟值(通常由请求捕获)。这是问题所在。如果您没有在pg.connect中发出任何数据库请求并在其上循环,则似乎连接未正确关闭。所以连接池显然会中断。 希望我已经足够清楚了。

无论如何,谢谢你的帮助。

答案 1 :(得分:0)

我认为问题是for循环中的异步调用“pg.connect”。 试试这个js模块async