首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NodeJS:如何获取服务器的端口?

NodeJS:如何获取服务器的端口?
EN

Stack Overflow用户
提问于 2011-01-30 11:00:56
回答 16查看 277.3K关注 0票数 159

您经常会看到Node的示例hello world代码,它创建一个Http服务器,开始侦听一个端口,然后是类似以下内容的内容:

代码语言:javascript
复制
console.log('Server is listening on port 8000');

但理想情况下,你会想要这样:

代码语言:javascript
复制
console.log('Server is listening on port ' + server.port);

如何检索服务器当前正在侦听的端口,而不在调用server.listen()之前将数字存储在变量中

我以前见过这样做,但在Node文档中找不到它。也许这是某种特定的东西来表达?

EN

回答 16

Stack Overflow用户

发布于 2012-07-19 13:04:16

在express v3.0中,

代码语言:javascript
复制
/* No longer valid */
var app = express.createServer();
app.listen();
console.log('Server running on %s', app.address().port);

不再起作用了!对于Express v3.0,您应该这样创建一个应用程序和一个服务器:

代码语言:javascript
复制
var express = require('express');
var http = require('http');

var app = express();
var server = http.createServer(app);

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

server.listen(3000);
console.log('Express server started on port %s', server.address().port);

我自己遇到了这个问题,并想记录下新的语法。在https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x上可以看到Expressv3.0中的这一变化和其他变化

票数 66
EN

Stack Overflow用户

发布于 2011-05-12 20:57:16

在当前版本(v0.5.0-之前)中,端口似乎可以作为服务器对象的属性使用,请参见http://nodejs.org/docs/v0.4.7/api/net.html#server.address

代码语言:javascript
复制
var server = http.createServer(function(req, res) {
    ...
}

server.listen(8088);
console.log(server.address());
console.log(server.address().address);
console.log(server.address().port);

输出

代码语言:javascript
复制
{ address: '0.0.0.0', port: 8088 }
0.0.0.0
8088
票数 26
EN

Stack Overflow用户

发布于 2014-02-25 10:36:23

如果您在处理请求时需要端口,而app不可用,您可以使用以下方法:

代码语言:javascript
复制
request.socket.localPort
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4840879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档