当前位置: 首页 > 面试题库 >

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

郑浩博
2023-03-14
问题内容

您经常会看到Node的示例hello world代码,该代码创建Http Server,开始侦听端口,然后执行以下操作:

console.log('Server is listening on port 8000');

但理想情况下,您希望这样做:

console.log('Server is listening on port ' + server.port);

如何在调用前不将服务器号存储在变量中的情况下检索服务器当前正在侦听的端口server.listen()

我之前已经看过这件事,但是在Node文档中找不到。也许这是表达的特定内容?


问题答案:

Express 4.x答案:

Express 4.x(根据下面的Tien
Do回答)现在将app.listen()视为异步操作,因此listener.address()将仅在app.listen()的回调中返回数据:

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

var listener = app.listen(8888, function(){
    console.log('Listening on port ' + listener.address().port); //Listening on port 8888
});

快递3答案:

我认为您正在寻找这个(特定于表达?):

console.log("Express server listening on port %d", app.address().port)

通过express命令创建目录结构时,您可能已经看到了这一点(下一行):

alfred@alfred-laptop:~/node$ express test4
   create : test4
   create : test4/app.js
   create : test4/public/images
   create : test4/public/javascripts
   create : test4/logs
   create : test4/pids
   create : test4/public/stylesheets
   create : test4/public/stylesheets/style.less
   create : test4/views/partials
   create : test4/views/layout.jade
   create : test4/views/index.jade
   create : test4/test
   create : test4/test/app.test.js
alfred@alfred-laptop:~/node$ cat test4/app.js

/**
 * Module dependencies.
 */

var express = require('express');

var app = module.exports = express.createServer();

// Configuration

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.use(express.bodyDecoder());
  app.use(express.methodOverride());
  app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] }));
  app.use(app.router);
  app.use(express.staticProvider(__dirname + '/public'));
});

app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
});

app.configure('production', function(){
  app.use(express.errorHandler()); 
});

// Routes

app.get('/', function(req, res){
  res.render('index.jade', {
    locals: {
        title: 'Express'
    }
  });
});

// Only listen on $ node app.js

if (!module.parent) {
  app.listen(3000);
  console.log("Express server listening on port %d", app.address().port)
}


 类似资料:
  • 从这个blogpost示例https://til.hashrocket.com/posts/sxbrscjuqu-share-scss-variables-with-javascript中,我试图在js代码中获取scss变量,但没有成功。 index.js文件 variables.scss文件 webpack.config.js文件 多谢帮忙。

  • TDR:我需要在自己的后端拥有Google Cloud Functions。 我编写应用程序,它使用firebase(尤其是firestore)作为在nodejs上编写的我自己的后端和客户端应用程序之间的传输层。 有时,我需要从后端的客户端捕获一些事件,但我希望避免直接向后端执行http查询(因为我需要捕获脱机状态和其他问题)。最好在firestore文档中进行一些更改,在后端捕获这些更改并执行一

  • 问题内容: 使用以下选项启动Java应用程序时: Java使用临时端口,这对于避免冲突非常有用。 是否可以从应用程序内部以编程方式获取实际端口(或连接URL)? 问题答案: 这将打印如下网址

  • 我需要有一个实时直播音频流从一个客户端到一个服务器到多个侦听器客户端。 目前,我已经从客户端录制工作和流通过套接字的音频。将io发送到服务器。服务器接收此数据,并且必须流式传输音频(也通过socket.io?)发送给希望侦听此流的客户端。它必须尽可能实时(尽量减少延迟)。 我正在使用GetUserMedia录制麦克风(浏览器兼容性在这里并不重要)。我希望客户端使用HTML5音频标签来收听流。在服务

  • 本文向大家介绍Nodejs如何搭建Web服务器,包括了Nodejs如何搭建Web服务器的使用技巧和注意事项,需要的朋友参考一下 使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块、文件系统、url解析模块、路径解析模块、以及301重定向问题,下面我们就简单讲一下如何来搭建一个简

  • nodejs版本:0.8.6 我使用openssl创建了一个ssl csr文件,并使用以下命令:openssl req-nodes-newkey rsa:2048-keyout myserver.key-out myserver.csr null 我试着检查这个问题:openssl s_client-connect my_dns:443//my_dns当然指向我的nodejs服务器 结果:已连接(