Express.js在仍然执行的同时获取地址和端口

ale*_*eat 2 javascript node.js express

我已经阅读了有关Nodejs和Expressjs的许多文章,但是我仍然不明白它是如何工作的:

这是带有Express.js的基本Hello World应用程序(摘自http://expressjs.com/starter/hello-world.html)。

var express = require('express')
var app = express()

app.get('/', function (req, res) {
  res.send('Hello World!')
})

var server = app.listen(3000, function () {

var host = server.address().address
var port = server.address().port

console.log('Example app listening at http://%s:%s', host, port)

})
Run Code Online (Sandbox Code Playgroud)

server当我们仍在获取最终绑定到的东西的过程中,我们如何获得主机和端口的使用权var server

Sci*_*ter 5

因为它是异步的。回调仅在server定义和初始化之后才运行。

var server = app.listen(3000, function () {

    var host = server.address().address
    var port = server.address().port

    console.log('Example app listening at http://%s:%s', host, port)

})
Run Code Online (Sandbox Code Playgroud)

适当的缩进有时有助于了解这一点。