Javascript - app.set('порт', 8080) по сравнению с app.listen(8080) в Express.js

Я пытаюсь использовать Express.js для запуска веб-сайта. Сначала я использовал app.set('port', 8080), но браузер не смог подключиться к странице. Впоследствии я изменил код на app.listen(8080), и веб-страница появилась нормально.

Это заставило меня задаться вопросом, в чем разница между этими двумя функциями?

Ответ 1

app.set('port', 8080) похож на установку "переменной" с именем port - 8080, к которой вы можете получить доступ позже, используя app.get('port'). Доступ к вашему веб-сайту из браузера действительно не работает, потому что вы все еще не сказали своему приложению слушать и принимать соединения.

app.listen(8080), с другой стороны, прослушивает подключения в порту 8080. Это та часть, в которой вы говорите своему приложению, чтобы слушать и принимать соединения. Доступ к вашему приложению из браузера с помощью localhost:8080 будет работать, если у вас есть это в коде.

Две команды могут быть использованы вместе:

app.set('port', 8080);
app.listen(app.get('port'));

Ответ 2

Достаточно просто объявить переменный сервер в нижней части страницы и определить требуемый порт. Вы можете console.log порт, чтобы он был видимым в командной строке.

var server = app.listen(8080,function(){
   console.log('express server listening on port ' + server.address().port);
    })

Ответ 3

Например:

var port = 8080
app.listen(port);
console.log('Listening on port ${port}');

Объяснение строки за строкой:

var port = 8080; => Создает переменную (все в javascript является объектом) и устанавливает местоположение порта на localhost 8080 app.listen(port); => Приложение, созданное с помощью экспресс-модуля, проверяет наличие любых подключений, и если да, то оно подключается и приложение запускается console.log('Listening on port ' + port); => Отображает сообщение на терминал после успешного развертывания.