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);
=> Отображает сообщение на терминал после успешного развертывания.