为什么我们需要手动设置Express应用程序应该监听哪个端口?

时间:2017-03-02 14:53:01

标签: node.js

一旦您生成快速应用程序,您必须手动设置您想要收听的端口吗?我只是好奇。有意义的是,在我安装应用程序后,我可以继续,启动应用程序,它会自动“正常工作”(因为我需要导航到我的网站)?

2 个答案:

答案 0 :(得分:1)

您可以在app.js文件中设置要侦听的端口,除非该端口正忙,否则可以运行,可以通过设置,通常情况下设置哪些端口不可用,或者配置webserver to auto =在服务器启动时启动你的应用程序,这将减少端口繁忙的可能性。或者只是编辑你的代码以尝试随机组合,直到找到一个端口。

答案 1 :(得分:1)

为您的服务器选择随机发布并在控制台中记录输出

由于Joe Clay告诉您使用0而不是端口号,它将解决您的问题,但是如果您想了解服务器启动时的详细呼叫功能,

app.listen(0,'your_device_local_network_IP', () => {
    console.log(app.address())
}

它将注销有关您的服务器的详细信息,如果您使用本地网络IP(我个人用它在我的网络中的多个设备上检查我的网站),这应该是结果。

{ address: '192.168.10.5', family: 'IPv4', port: 34488 }

您没有输入您的本地网络IP,发出'your_device_local_network_IP'这是可选的,输出应该像

{ address: '::', family: 'IPv6', port: 38135 }

这是我简单的工作服务器:

let http = require('http');
let path = require('path');
let serveStatic = require('serve-static');

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


app.set('views', './views');
app.set('view engine', 'pug');

app.use('/', serveStatic('./public'));
app.get('/', (req, res) => {res.render('index')});
let server = http.createServer(app);
server.listen(0, () => {
    console.log(server.address())
})

How to set port for express server dynamically?