从 Node JS 获取服务器的端口 connect.js

Get server's port from Node JS connect.js

我想从我的节点 js 服务器向终端输出类似 "Listening on port {port_#}" 的消息。

我找到了文档,例如 NodeJS: How to get the server's port?,但它们只讨论 Express JS。

我正在使用 ConnectJS 方面进行连接。所以我的代码看起来像:

var connect = require('connect');
var serveStatic = require('serve-static');
connect().use(serveStatic(__dirname)).listen(8080);

console.log("Listening on port %d", connect.address().port);

但是,这不起作用。我如何将端口登录到终端?

您正在尝试调用连接库的 .address() 方法。这种方法不存在。它甚至不存在于 connect() 的实例中。您正在寻找的方法存在于 http.Server 对象中。

创建连接实例时,会返回一个应用程序。当您告诉应用程序收听时,您可以提供一个回调,该回调会在应用程序开始收听时调用。此回调使用 http.Server 作为绑定到 this.

的上下文调用
var connect = require( 'connect' )
var app = connect()
app.listen( 8080, function(){
  //`this` is the underlying http.Server powering the connect app
  console.log( 'App is listening on port ' + this.address().port )
})

来自 source code 连接:

app.listen = function(){
  var server = http.createServer(this);
  return server.listen.apply(server, arguments);
};