2017-11-03 5 views
0

したがって、複数のLoopBacksを異なるポートからリスンしたい(devをより簡単にする)。私はPORT=808x node .を使ってこれを達成することができますが、私は設定された選択肢を好むでしょう。LoopBackはconfig.json(または他の設定ファイル)からポートプロパティを読み込みません

configsを使用しようとしたとき、私は奇妙な動作に気付きました。 restApiRootなどの他の設定は、server/config.jsonに書き込むものと一致しますが、env変数などを使用しない限り、ポートは常に8080です。私はすべての設定ファイルのドキュメントをチェックしました。ループバックは読み取られません。そのうちのどれもportの新しい値を持っていません。そのport値はどこから来たのですか? server/config.jsonまたはこれに類似した公式の設定ファイルで強制的に使用するにはどうすればよいですか?

UPDATE:私のサーバー/ server.jsサーバー/ config.jsonとpackage.jsonファイル

私はnode .コマンドでこれを起動すると、ポート変数が8080代わりの8082とするとき、私はwgetのあります、応答(404)は8080から来て、8082はそのポートにサービスを提供するサーバーがないので応答しません。

package.json

{ 
    "name": "external-server", 
    "version": "1.0.0", 
    "main": "server/server.js", 
    "scripts": { 
    "pretest": "jshint ." 
    }, 
    "dependencies": { 
    "compression": "^1.0.3", 
    "cors": "^2.5.2", 
    "loopback": "^2.22.0", 
    "loopback-boot": "^2.6.5", 
    "loopback-component-explorer": "^2.1.0", 
    "loopback-connector-mysql": "^2.4.1", 
    "loopback-datasource-juggler": "^2.39.0", 
    "serve-favicon": "^2.0.1" 
    }, 
    "devDependencies": { 
    "jshint": "^2.5.6" 
    } 
} 

サーバー/ server.js

var loopback = require('loopback'); 
var boot = require('loopback-boot'); 

var app = module.exports = loopback(); 

app.start = function() { 
    // start the web server 
    return app.listen(function() { 
    app.emit('started'); 
    console.log(app.get('port')) 
    var baseUrl = app.get('url').replace(/\/$/, ''); 
    console.log('Web server listening at: %s', baseUrl); 
    if (app.get('loopback-component-explorer')) { 
     var explorerPath = app.get('loopback-component-explorer').mountPath; 
     console.log('Browse your REST API at %s%s', baseUrl, explorerPath); 
    } 
    }); 
}; 

// Bootstrap the application, configure models, datasources and middleware. 
// Sub-apps like REST API are mounted via boot scripts. 
boot(app, __dirname, function(err) { 
    if (err) throw err; 

    // start the server if `$ node server.js` 
    if (require.main === module) 
    app.start(); 
}); 

サーバー/ config.json

{ 
    "restApiRoot": "/api", 
    "host": "0.0.0.0", 
    "port": 8082 
} 
+0

どのバージョンのループバックを使用していますか?私がconfig.jsonのポートを変更すると私のために働きます。config.jsonとserver.jsのコードであなたの質問を編集してください。あなたのループバックバージョンについて言及することを忘れないでください –

答えて

0

さて、私が、sudoでループバックを実行したときと思われます、設定ファイルが適用されます。とても混乱するような。

したがって、コマンドnode .は間違ったポートにつながり、sudo node .server/config.jsonからポートを読み込みます。 sudoがなくても、他の設定パラメータが正しく読み込まれているようですが、何らかの理由でPORTが特殊なケースです。 realted answerがあります。これは、これがNodeJS + Expressの問題であり、ループバックの問題ではないことを示しています。

関連する問題