我无法理解一件事 - NodeJS是否允许收听自定义主机名?不是localhost。因为当我收听我的网站url(example.com)时,我收到以下错误:
错误:收听EADDRNOTAVAIL example.com ip-address :1000 at Object.exports._errnoException(util.js:1022:11)at Server._listen2上的exports._exceptionWithHostPort(util.js:1045:20) (net.js:1246:19)at net(js.js:1295:10)at net.js:1405:9 at at _combinedTickCallback(internal / process / next_tick.js:77:11)at process._tickCallback(internal / process / next_tick.js:98:9)at at Module.runMain(module.js:606:11)在运行时(bootstrap_node.js:394:7)at startup(bootstrap_node.js:149:9)
为什么会这样?我可以从外部站点URL收听POST消息吗?
答案 0 :(得分:0)
为什么会这样?
这是因为您无法使用您请求的hostname
和port
。
我可以收听来自外部网站网址的POST消息吗?
不,你不能。 server.listen()接受hostname
和port
开始接受指定端口和主机名上的连接。如果省略主机名,服务器将在IPv6可用时接受任何IPv6地址(::)上的连接,否则接受任何IPv4地址(0.0.0.0)。省略port参数,或使用端口值0,让操作系统分配一个随机端口,可以在发出'listening'事件后使用server.address()。port检索。
进一步深入研究list of Node.js Common System Errors docs和exhaustive list,显然Address not available
就属于这种情况。
EADDRNOTAVAIL地址不可用(POSIX.1)。