这是一个简单的脚本
var http = require("http");
http.get( WEBSITE, function(res) {
console.log("Does not return");
return;
});
Run Code Online (Sandbox Code Playgroud)
如果WEBSITE变量是" http://google.com "或" http://facebook.com ",则脚本不会返回控制台.但如果WEBSITE变量是' http://yahoo.com '或' http://wikipedia.org ',它将返回到控制台.有什么不同?
通过"返回控制台",我假设您的意思是退出节点并在shell提示符下退回.
事实上,节点最终会退出您列出的所有域.(你只是不耐烦.)
您所看到的是HTTP保持活动的结果.默认情况下,节点在HTTP请求完成后保持TCP连接打开.这使得对同一服务器的后续请求更快.只要TCP连接仍处于打开状态,节点就不会退出.
最终,节点或服务器将关闭空闲连接(因此节点将退出).谷歌和Facebook可能允许空闲连接比雅虎和维基百科更长时间地存在.
如果您希望脚本发出请求并在完成后立即退出,则需要禁用HTTP keep-alives.您可以通过禁用代理支持来执行此操作.
http.get({ host:'google.com', port:80, path:'/', agent:false }, function(res) {
...
});
Run Code Online (Sandbox Code Playgroud)
仅在需要此特定功能时才禁用代理.在正常,长期运行的应用程序中,禁用代理可能会导致许多问题.
| 归档时间: |
|
| 查看次数: |
788 次 |
| 最近记录: |