如何在端口 80 上 运行 环回应用程序
How can I run loopback application on port 80
我正在使用基于 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'));
});
};
但是不行。
我一直在寻找这个,但我还没有找到解决方案。
这与在 Express 中看到的问题类似;一个这样的答案在这里 Node.js + Express: app won't start listening on port 80
我没有在文档中看到它的明确说明,但也遇到了监听端口 80 需要 sudo (root) 的问题。 loopback.js 文档 https://apidocs.strongloop.com/loopback/#app-listen states that your call is just passed to the HTTP Server class https://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback 但您的格式也与 Express 的格式匹配(因此第一个 link)。
您的错误消息将有助于了解是 root 访问权限问题还是其他问题。
更改 server/config.json
中的 port
属性。参见 https://github.com/strongloop/loopback-sandbox/blob/master/server/config.json#L4
我需要动态设置端口,以便在开发中为 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() {
...
{
"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
示例。
如果您使用的是 loopback x3,您需要创建一个名为 server/config.local.json
的文件。然后将server/config.json
中的所有文件复制进去。现在,将您需要的 "your port number" 添加到 server/config.local.json
中的 "port property",它将起作用。
我正在使用基于 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'));
});
};
但是不行。
我一直在寻找这个,但我还没有找到解决方案。
这与在 Express 中看到的问题类似;一个这样的答案在这里 Node.js + Express: app won't start listening on port 80
我没有在文档中看到它的明确说明,但也遇到了监听端口 80 需要 sudo (root) 的问题。 loopback.js 文档 https://apidocs.strongloop.com/loopback/#app-listen states that your call is just passed to the HTTP Server class https://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback 但您的格式也与 Express 的格式匹配(因此第一个 link)。
您的错误消息将有助于了解是 root 访问权限问题还是其他问题。
更改 server/config.json
中的 port
属性。参见 https://github.com/strongloop/loopback-sandbox/blob/master/server/config.json#L4
我需要动态设置端口,以便在开发中为 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() {
...
{
"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
示例。
如果您使用的是 loopback x3,您需要创建一个名为 server/config.local.json
的文件。然后将server/config.json
中的所有文件复制进去。现在,将您需要的 "your port number" 添加到 server/config.local.json
中的 "port property",它将起作用。