NodeJS + ExpressJS在发送.js文件之前等待2分钟

时间:2013-03-03 21:06:46

标签: node.js express

我在使用NodeJS项目加载.js文件时遇到问题。在这个项目中,我目前正在运行NodeJS 0.6.15和Express 2.5.6。

问题在于,当我请求.js文件时,它只需要2分钟。

有什么想法吗?!

这很奇怪,因为它已经工作了很长时间,现在没有改变任何东西它会得到这个错误。 2分钟后,它会完美地返回文件。

3 个答案:

答案 0 :(得分:0)

最有可能的是,您没有调用response.end(),因此连接在大约2分钟内超时(典型的是HTTP / 1.1),刷新并关闭,然后您将内容恢复到浏览器中。

答案 1 :(得分:0)

我在Ajax请求上遇到了类似的问题,而不是.js文件。事实证明它是由浏览器本身引起的。错误的是,我在Windows8 x64系统中安装了32位Chrome / Firefox。

问题详情

问题是任何带有Content-Type application/json且响应很小或几乎为空的Ajax请求都会挂起2分钟,即使在Developer Tool中您可以看到响应已经返回。 2分钟后,浏览器在请求的时间结果中将该请求标记为完成了2分钟的内容下载。

但是,对于响应较大的请求,情况并非如此。确实很奇怪。

<强>环境

  • Nodejs v4.2.4或Nodejs v0.12.9
  • Expressjs 4.13.3

答案 2 :(得分:0)

public class Test {
    public static void main(String[] args) {
        System.out.println("Welcome to Siddharth's number guessing game. \nThink of a number between 1 and 100 and press 1 to continue");
        Scanner x= new Scanner(System.in);
        if (x.nextInt()==1)
        {
        int high=100;   
        int low=0;
        int guess=(high+low)/2;
        System.out.println("Is your number "+ guess+"? Press 0 if yes, press 1 if your number is higher than this number or press 2 if your number is lower than this number!");
        Scanner y= new Scanner(System.in);
        int ans=y.nextInt();
           while(ans!=0)
           {
               if (ans==1)
               {
                   low=ans;
                    guess=(high+low)/2;
                    System.out.println("Is your number "+ guess+"? Press 0 if yes, press 1 if your number is higher than this number or press 2 if your number is lower than this number!");
                    Scanner y1= new Scanner(System.in);
                    ans=y1.nextInt();
               }
               else if (ans==2)
               {
                   high=ans;
                    guess=(high+low)/2;
                    System.out.println("Is your number "+ guess+"? Press 0 if yes, press 1 if your number is higher than this number or press 2 if your number is lower than this number!");
                    Scanner y2= new Scanner(System.in);
                    ans=y2.nextInt();
               }

           }
           System.out.println("The number you thought is"+guess+"! Thanks for playing!");
        }
        else
        {
            System.out.println("No problem. Restart the program and press 1 when ready!");
        }
    }

}

设置saveUninitialized:false解决问题,但不知道为什么