【问题标题】:How can I run loopback application on port 80如何在端口 80 上运行环回应用程序
【发布时间】:2015-12-02 13:02:30
【问题描述】:

我正在使用基于 expressjs 的 loopback.io,我尝试将端口添加为app.listen 的第一个参数,如下所示:

// server.js

app.start = function() {
  // start the web server
  return app.listen(80, function() {
    app.emit('started');
    console.log('Web server listening at: %s', app.get('url'));
  });
};

但它不起作用。

我一直在寻找这个,但我还没有找到解决方案。

【问题讨论】:

    标签: node.js express loopbackjs


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      这类似于在 Express 中看到的问题;一个这样的答案在这里Node.js + Express: app won't start listening on port 80

      我没有在文档中看到它明确指出,但也有监听端口 80 需要 sudo (root) 的问题。 loopback.js 文档 https://apidocs.strongloop.com/loopback/#app-listen 指出您的调用只是传递给 HTTP Server 类 https://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback 但您的格式也与 Express 的格式匹配(因此是第一个链接)。

      您的错误消息将有助于了解是 root 访问权限还是其他问题。

      【讨论】:

        【解决方案3】:

        我需要动态设置端口,以便在开发中为 3001,在生产中为 80。这对我有用:

        app.start = function() {  
          //change the port if needed for production  
          if (process.env.PORT) {  
            app.set('port', process.env.PORT);
          }
        
          // start the web server
          return app.listen(function() {
        ...
        

        【讨论】:

          【解决方案4】:
          {
            "restApiRoot": "/api",
            "host": "0.0.0.0",
            "port": 80,
            "remoting": {
              "context": false,
              "rest": {
                "normalizeHttpPath": false,
                "xml": false
              },
              "json": {
                "limit": "50mb"
              },
              "urlencoded": {
                "limit": "50mb",
                "extended": true
              },
              "handleErrors": false
            },
            "legacyExplorer": false,
            "logoutSessionsOnSensitiveChanges": true
          }
          

          请参考此server/config.json 示例。

          【讨论】:

            【解决方案5】:

            如果您使用的是 loopback x3,您需要创建一个名为 server/config.local.json 的文件。然后将server/config.json中的所有文件复制到其中。现在,将您需要的“您的端口号”添加到server/config.local.json 中的“端口属性”中,它将起作用。

            详情见原文:https://loopback.io/doc/en/lb3/Environment-specific-configuration.html#application-wide-configuration

            【讨论】:

              猜你喜欢
              • 2016-02-15
              • 1970-01-01
              • 2013-03-02
              • 2019-06-23
              • 1970-01-01
              • 2013-01-27
              • 1970-01-01
              • 2019-05-27
              • 2011-08-31
              相关资源
              最近更新 更多