我一直在使用 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。 我无法找到问题,问题是否可能与节点版本有关?
答案 0 :(得分:0)
关闭服务器之前,应关闭套接字。 在使用停止之前,请尝试延迟程序。
尝试添加:
req.end();
setTimeout(function(){server.stop(sev,function(e){e?(console.log(e)):(console.log("server is closed"));})
},4000);