下面是一个简单的脚本
var http = require("http");
http.get( WEBSITE, function(res) {
console.log("Does not return");
return;
});
如果WEBSITE
的变量是“ http://google.com ”或“ http://facebook.com ”脚本不返回到控制台。 但如果WEBSITE
变量是“ http://yahoo.com ”或“ http://wikipedia.org ”返回到控制台。 有什么区别?
通过“回归安慰”我假设你的意思是节点退出,而您回来在shell提示符下。
事实上,节点做最终为你列出的那些领域的退出。 (你只是不耐烦。)
你们看到的是保持HTTP的结果。 默认情况下,节点保持一个HTTP请求完成后开放的TCP连接。 这使得后续的请求到同一台服务器更快。 只要一个TCP连接仍然是开放的,节点将不会退出。
最终,任一节点或服务器将关闭空闲连接(且因此节点将退出)。 这可能是谷歌和Facebook允许空闲连接活更长的时间量超过雅虎和维基百科。
如果你希望你的脚本进行的请求,并尽快,因为它完成退出,你需要禁用HTTP保持活动。 您可以通过禁用为此代理的支持。
http.get({ host:'google.com', port:80, path:'/', agent:false }, function(res) {
...
});
只有当你需要这种特定的功能禁用代理。 在一个正常的,长期运行的应用程序,禁用代理会导致许多问题。
还有,你可以去避免保持有效指示保持节点运行一些其他的方法 。