Express.js中的javascript-app.set(';port';8080)与app.listen(8080)

Express.js中的javascript-app.set(';port';8080)与app.listen(8080),javascript,express,Javascript,Express,我一直在尝试使用Express.js来启动一个网站。起初,我用的是 app.set('port',8080)但浏览器无法连接到页面。之后,我将代码改为app.listen(8080),网页正常显示 这让我想知道,这两个函数之间有什么区别?app.set('port',8080)类似于将名为port的“变量”设置为8080,您可以稍后使用app.get('port')访问该变量。从浏览器访问您的网站确实不起作用,因为您仍然没有告诉您的应用程序侦听和接受连接 app.listen(8080)另一方面

我一直在尝试使用Express.js来启动一个网站。起初,我用的是
app.set('port',8080)
但浏览器无法连接到页面。之后,我将代码改为
app.listen(8080)
,网页正常显示

这让我想知道,这两个函数之间有什么区别?

app.set('port',8080)
类似于将名为
port
的“变量”设置为
8080
,您可以稍后使用
app.get('port')
访问该变量。从浏览器访问您的网站确实不起作用,因为您仍然没有告诉您的应用程序侦听和接受连接

app.listen(8080)
另一方面侦听端口
8080
上的连接。这是您告诉应用程序侦听和接受连接的部分。如果代码中有此项,则使用
localhost:8080
从浏览器访问应用程序将有效

这两个命令实际上可以一起使用:

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

在页面底部声明一个变量服务器并定义所需的端口非常简单。您可以对端口进行console.log操作,使其在命令行中可见

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

var port = 8080
app.listen(port);
console.log(`Listening on port ${port}`);
逐行解释:

var端口=8080
=>创建一个变量(javascript中的所有内容都是一个对象),并将端口位置设置为localhost 8080
app.listen(端口)
=>使用express module创建的应用程序会检查是否有可用的连接,如果是,则会连接并启动应用程序

console.log('监听端口'+端口)=>一旦成功部署,在终端上显示消息

只是一个提示,
端口
不再是一个功能。在上面的示例中:
server.address().port
将起作用。您能否解释一下为什么使用
app.set
存储端口值是一种常见做法,或者为什么任何东西都会存储在这里而不是普通变量中?@GershomMaes使用
app.set
存储端口值在这里可能是一个不好的例子,但是对于其他值,使用
app.set
而不是普通变量来存储它们是有意义的,就像例如
app.set('views','somepath')它告诉express在何处查找视图。使用
app.set
存储的值可以在express或应用程序使用的某些其他软件包中内部使用。