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

我想从我的节点js服务器输出一条消息,如“侦听端口{port_#}”到terminal。

我发现这样的文档, NodeJS:如何获取服务器的端口? ,但他们只谈到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); 

但是,这不起作用。 我将如何login端口到terminal?

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

当您创build连接实例时,会返回一个应用程序。 当您告诉应用程序进行监听时,您可以提供一个callback,当应用程序开始监听时会被调用。 这个callback被调用与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 ) }) 

从连接的源代码 :

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