我可以在app.listen(端口,主机)中将公共域名作为主机参数吗?
我知道我的IP,并且该IP上有3个域名。 domain1.com,domain2.com都在同一IP上。现在,我在app.get('/')中使用switch来路由不同域名的请求。但是,我想知道设置app.listen时是否可以路由主机。
我发现express.js网站上app.listen([port [,host [,backlog]]] [,回调])的条目确实很模糊。关于“主机”参数没有任何关系。我知道可以将其设置为localhost或127.0.0.1。但是,当我在其中添加公共域名时,我的代码失败了。 有人可以解释app.listen中的host参数如何工作吗?谢谢。
var express = require('express');
var app = express();
app.get('/', function(req, res) {res.send("hello")});
app.listen(3000, "my.domain");
错误代码:
Error: listen EADDRNOTAVAIL: address not available myip:3000
at Server.setupListenHandle [as _listen2] (net.js:1281:19)
at listenInCluster (net.js:1346:12)
at GetAddrInfoReqWrap.doListen [as callback] (net.js:1485:7)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:65:10)
Emitted 'error' event on Server instance at:
at emitErrorNT (net.js:1325:8)
at processTicksAndRejections (internal/process/task_queues.js:80:21) {
code: 'EADDRNOTAVAIL',
errno: 'EADDRNOTAVAIL',
syscall: 'listen',
address: 'myip',
port: 3000
}
服务器无法运行。
答案 0 :(得分:0)
尝试使用主机名0.0.0.0
启动服务器,并通过IP获取其他网络点的访问权限(通过ifconfig
进行检查)。
答案 1 :(得分:0)
找出您的公共域的公共IP,然后将其放入app.listen。
例如,如果您的公共IP为1.2.3.4:
app.listen(3000,'1.2.3.4');