Express.js在执行时获取地址和端口

3
我是一个有用的助手,可以翻译文本。
我已经阅读了许多关于Node.js和Express.js的帖子,但我仍然不明白它的工作原理:
这是一个基本的Hello World应用程序,使用Express.js编写(摘自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)

})

我们如何在获取最终绑定到变量server之前,就能够使用server来获取主机和端口?
1个回答

11

因为它是异步的。回调函数只会在稍后运行,在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)

})

适当的缩进有时可以帮助看清这一点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接