【问题标题】:javascript - app.set('port', 8080) versus app.listen(8080) in Express.jsjavascript - Express.js 中的 app.set('port', 8080) 与 app.listen(8080) 对比
【发布时间】:2014-08-16 05:30:10
【问题描述】:

我一直在尝试使用 Express.js 来启动一个网站。起初,我在使用 app.set('port', 8080) 但浏览器无法连接到该页面。后来我把代码改成app.listen(8080),网页就正常出现了。

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

【问题讨论】:

    标签: javascript express


    【解决方案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'));
    

    【讨论】:

    • 您能解释一下为什么使用app.set 存储端口值是一种常见的做法,或者为什么会在这里存储任何东西而不是普通变量?
    • @GershomMaes 使用app.set 存储端口值在这里可能是一个不好的例子,但对于其他值,使用app.set 而不是普通变量存储它们是有意义的,就像例如@ 987654332@ 告诉 express 在哪里寻找视图。使用 app.set 存储的值可以在 express 或您的应用使用的其他一些包中内部使用。
    【解决方案2】:

    在页面底部声明一个变量服务器并定义您想要的端口很简单。您可以 console.log 端口,以便它在命令行中可见。

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

    【讨论】:

    • 请注意,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); =>使用 express 模块创建的应用程序检查任何可用的连接,如果是,则连接并启动应用程序 console.log('Listening on port ' + port); =>部署成功后在终端上显示消息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-15
      • 2022-12-27
      • 2012-03-16
      • 1970-01-01
      • 2020-06-22
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多