如何在端口80上运行环回应用程序

时间:2015-09-07 03:43:52

标签: node.js express loopbackjs

我正在使用基于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'));
  });
};

但它不起作用。

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

5 个答案:

答案 0 :(得分:6)

答案 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访问权是否存在问题,或者是否是其他问题。

答案 2 :(得分:0)

我需要动态设置端口,以便开发中的端口为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() {
...

答案 3 :(得分:0)

{
  "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示例。

答案 4 :(得分:0)

如果使用环回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