我正在使用基于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'));
});
};
但它不起作用。
我一直在寻找这个,但我还没有找到解决方案。
答案 0 :(得分:6)
更改{{1}}中的{{1}}媒体资源。见https://github.com/strongloop/loopback-sandbox/blob/master/server/config.json#L4
答案 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