如果我使用端口80运行服务器,并且尝试使用xmlHTTPrequest,则会出现此错误:Error: listen EADDRINUSE
在端口80上运行服务器时,如果要发出请求,为什么nodejs会出现问题?对于网络浏览器而言,这不是问题:服务器运行时,我可以在Internet上冲浪。
服务器是:
net.createServer(function (socket) {
socket.name = socket.remoteAddress + ":" + socket.remotePort;
console.log('connection request from: ' + socket.remoteAddress);
socket.destroy();
}).listen(options.port);
并要求:
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
sys.puts("State: " + this.readyState);
if (this.readyState == 4) {
sys.puts("Complete.\nBody length: " + this.responseText.length);
sys.puts("Body:\n" + this.responseText);
}
};
xhr.open("GET", "http://mywebsite.com");
xhr.send();
EADDRINUSE
表示listen()
试图将服务器绑定到的端口号已被使用。
因此,在您的情况下,必须已经在端口80上运行了服务器。
如果在此端口上运行其他Web服务器,则必须将node.js放在该服务器后面,并通过它进行代理。
您应该检查listening
此类事件,以查看服务器是否确实在监听:
var http=require('http');
var server=http.createServer(function(req,res){
res.end('test');
});
server.on('listening',function(){
console.log('ok, server is running');
});
server.listen(80);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句