【发布时间】:2014-08-16 05:30:10
【问题描述】:
我一直在尝试使用 Express.js 来启动一个网站。起初,我在使用
app.set('port', 8080) 但浏览器无法连接到该页面。后来我把代码改成app.listen(8080),网页就正常出现了。
这让我想知道,这两个函数有什么区别?
【问题讨论】:
标签: javascript express
我一直在尝试使用 Express.js 来启动一个网站。起初,我在使用
app.set('port', 8080) 但浏览器无法连接到该页面。后来我把代码改成app.listen(8080),网页就正常出现了。
这让我想知道,这两个函数有什么区别?
【问题讨论】:
标签: javascript express
app.set('port', 8080) 类似于将名为port 的“变量”设置为8080,稍后您可以使用app.get('port') 访问该变量。从浏览器访问您的网站实际上是行不通的,因为您仍然没有告诉您的应用程序侦听和接受连接。
另一方面,app.listen(8080) 侦听端口 8080 的连接。这是您告诉您的应用程序侦听和接受连接的部分。如果您的代码中有此功能,则可以使用 localhost:8080 从浏览器访问您的应用程序。
这两个命令实际上可以一起使用:
app.set('port', 8080);
app.listen(app.get('port'));
【讨论】:
app.set 存储端口值是一种常见的做法,或者为什么会在这里存储任何东西而不是普通变量?
app.set 存储端口值在这里可能是一个不好的例子,但对于其他值,使用app.set 而不是普通变量存储它们是有意义的,就像例如@ 987654332@ 告诉 express 在哪里寻找视图。使用 app.set 存储的值可以在 express 或您的应用使用的其他一些包中内部使用。
在页面底部声明一个变量服务器并定义您想要的端口很简单。您可以 console.log 端口,以便它在命令行中可见。
var server = app.listen(8080,function(){
console.log('express server listening on port ' + server.address().port);
})
【讨论】:
port 不再是一个函数。在上面的示例中:server.address().port 将起作用。
例如:
var port = 8080
app.listen(port);
console.log(`Listening on port ${port}`);
逐行解释:
var port = 8080; =>创建一个变量(javascript中的一切都是一个对象)并将端口位置设置为localhost 8080 app.listen(port);
=>使用 express 模块创建的应用程序检查任何可用的连接,如果是,则连接并启动应用程序
console.log('Listening on port ' + port); =>部署成功后在终端上显示消息
【讨论】: