У меня есть приложение 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?
Спасибо!
Изменить: пример кода (очень простой Node/экспресс-приложение)
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);