在node.js中,如何在运行时检查我是否可以在端口80上运行?
我正在编写一个节点服务器,它侦听两个端口,端口80和8080。如果我在node.js中,如何在运行时检查我是否可以在端口80上运行?,node.js,Node.js,我正在编写一个节点服务器,它侦听两个端口,端口80和8080。如果我sudoIt,效果会很好。如果它不能连接到端口80,我想做的是让它只在端口8080上运行,但我不知道如何检测这种情况。我希望当我调用服务器时它会抛出 var ports = [80, 8080]; var servers = []; var goodPorts = []; for (var ii = 0; ii < ports.length; ++ii) { var port = ports[ii]; var se
sudo
It,效果会很好。如果它不能连接到端口80,我想做的是让它只在端口8080上运行,但我不知道如何检测这种情况。我希望当我调用服务器时它会抛出
var ports = [80, 8080];
var servers = [];
var goodPorts = [];
for (var ii = 0; ii < ports.length; ++ii) {
var port = ports[ii];
var server = http.createServer(handleRequests);
try {
server.listen(port);
servers.push(server);
goodPorts.push(port);
} catch (e) {
// not sure how to check for this. Maybe this?
if (e.toString().indexOf("EACCES") < 0) {
throw e;
} else {
console.error("could NOT connect to port: " + port);
}
}
}
console.log("Listening on port(s): " + goodPorts.join(", ") + "\n");
var端口=[808080];
var服务器=[];
var goodport=[];
对于(变量ii=0;ii
但是server.listen
不会抛出。此异常在安装后的某个时间发生。(换句话说,在那之后,console.log
在底部
如何检查它在运行时是否正常工作?接受回调,如果端口不可用,该回调将接收错误:
server.listen(80, function (err) {
if (!err)
return;
server.listen(8080, function (err) {
if (err)
throw err;
});
});