我有一个 Node.js/Express.js 应用程序在我的服务器上运行,它只能在端口 3000 上运行,我正试图找出原因。这是我发现的:
- 如果不指定端口 (
app.listen()
),应用程序会运行,但不会加载网页。 - 在端口 3001 (
app.listen(3001)
) 或任何其他未使用的端口上,应用程序运行但网页不加载。 - 在端口 2999 上,应用程序会抛出错误,因为其他东西正在使用该端口。
- 在端口 3000 上,应用程序运行并且网页加载正常。
我知道 Express 应用程序默认使用端口 3000。但奇怪的是,我的应用程序仅在我明确使其在端口 3000 ( app.listen(3000)
) 上运行时才运行。
我在第 220 行找到了这个/usr/bin/express
:
app.set(\'port\', process.env.PORT || 3000);
如前所述:将端口设置为指定的端口,如果未指定,则设置为 3000。
如何让我的应用程序在不同的端口(例如 8080 或 3001)上运行?
谢谢!
编辑:代码示例(非常简单的节点/Express 应用程序)
var express = require("express");
var app = express();
app.get('/', function(req, res){
res.send('hello world');
});
// Only works on 3000 regardless of what I set environment port to or how I set [value] in app.set('port', [value]).
app.listen(3000);