使用http.request会产生错误

时间:2014-12-29 16:33:41

标签: javascript node.js http module

我一直在使用 Node.js 中的 net 模块编写自己的静态http服务器。 这是我的代码:

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 个答案:

答案 0 :(得分:0)

关闭服务器之前,应关闭套接字。 在使用停止之前,请尝试延迟程序。

尝试添加:

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