Javascript Node.js-查找http服务器正在侦听的端口?

Javascript Node.js-查找http服务器正在侦听的端口?,javascript,node.js,Javascript,Node.js,我创建了一个小型hello world HTTP服务器,它在未分配的端口上侦听。问题是,我不确定如何找出服务器正在侦听的端口。代码如下: var http = require('http'); http.createServer(function handler(req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(0, '127.0

我创建了一个小型hello world HTTP服务器,它在未分配的端口上侦听。问题是,我不确定如何找出服务器正在侦听的端口。代码如下:

var http = require('http');

http.createServer(function handler(req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(0, '127.0.0.1', function (event) {
    // TODO register with service registry
    console.log('event: ', event);
});
文件规定:

此函数是异步的。最后一个参数回调将是 添加为“侦听”事件的侦听器。另见 net.Server.listen(端口)


问题是,即使调用了我的回调函数,也不会传递任何已定义的参数,而且我不确定“this”上的哪个公共函数或属性会为我提供所需的值。

进一步阅读文档,我发现我可以做到:

this.address().port

由于服务器扩展了net.Server

另请参见net.Server.listen(端口)。为什么让http在随机端口上创建服务器?因为我将创建一个基于REST的对等服务群集,这些服务将通过UDP广播或MDN相互发现。同一主机上或网络上可能有多个实例。端口在这里并不重要,因为它不是面向用户的。面向用户的服务将在一个固定端口上,并在后台抽象它。顺便说一句,对'-1'很好奇。似乎来自一个不完全理解用例的人。