2014-12-29 76 views
-1

我一直在使用net模块从Node.js写我自己的静态http服务器。 这里是我的代码:使用http.request生成错误

var options = { 
    hostname: 'localhost', 
    port: 8000, 
    path: '/read.txt', 
    httpVersion : 1.1, 
    method: 'GET', 
    headers:{ 
    'Content-Type':'text/plain', 
    'connection' : 'keep-alive' 
} 
}; 

function test(){ 
    var sev = server.start(8000,"./folder",function(e){ 
     e?(console.log(e)):(console.log("server is connected in port 8888")); 
    }); 
    var req = http.request(options, function(res) {}); 
    req.on('error', function(e) { 
     console.log('problem with request: ' + e.message); 
     }); 
    server.stop(sev,function(e){e?(console.log(e)):(console.log("server is closed"));}) 
} 
test() 

下面是函数停止服务器模块:

exports.stop = function(serverID,callback){ 
    serverID.close(); 
    callback(); 
} 

但是当我运行它,它会显示消息: 问题要求:连接ECONNREFUSED。 我找不到问题,问题是否可能与节点版本有关?

+1

看起来像 'server.stop' 正在运行。你的'测试'方法正在运行,没有机会让每一个完成。 – Joe

回答

0

在关闭服务器之前,应关闭插槽。 还试图在使用前延迟程序停止

尝试增加: 'server.start' 有机会来完成(或`http.request` server.start`完成之前`)之前

req.end(); 
setTimeout(function(){server.stop(sev,function(e){e?(console.log(e)):(console.log("server  is closed"));}) 
},4000);