我一直在尝试使用Express.js启动网站。起初,我使用了
这让我想知道这两个函数之间有什么区别?
app.set('port', 8080)
,但浏览器无法连接到页面。之后,我将代码更改为app.listen(8080)
,网页正常显示。这让我想知道这两个函数之间有什么区别?
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'));
在页面底部声明变量server并定义所需端口非常简单。您可以使用console.log打印端口,以便在命令行中查看。
var server = app.listen(8080,function(){
console.log('express server listening on port ' + server.address().port);
})
port
不再是一个函数。在上面的例子中:server.address().port
将起作用。 - AlbertEngelB例如:
var port = 8080
app.listen(port);
console.log(`Listening on port ${port}`);
逐行解释:
var port = 8080;
=>创建一个变量(javascript中的所有内容都是对象),并将端口设置为本地主机8080 app.listen(port);
=>使用express模块创建的应用程序检查是否有可用连接,如果有,则连接并启动应用程序
console.log('Listening on port ' + port);
=>成功部署后,在终端上显示消息
app.set
存储端口值是常见的做法吗?或者为什么会有东西被存储在这里而不是普通变量中? - Gershom Maesapp.set
存储端口值可能不是一个好的例子,但对于其他值,使用app.set
而不是普通变量来存储它们是有意义的,就像app.set('views', 'somepath');
这样告诉 express 去哪里查找视图一样。使用app.set
存储的值可以在 express 或您的应用程序使用的其他软件包中内部使用。 - Arnelle Balane