2017-03-06 9 views
0

私はapp.jsのGET "/"がアプリケーションのindex.htmlをレンダリングするAngularJS x ExpressJSを使用してWebアプリケーションを作成しました。AngularJS Express to Localhost経由で

たとえば、app.jsにGET /test-dataがあり、AngularJSからこれらのテストデータをlocalhost:port/test-data経由で取得しようとしています。これは私のテスト環境で動作していますが、プロダクションのリクエストURLをプロダクションのRESTに変更する必要がありました。

上記のURLの編集中に問題が発生するのを防ぐことができますか?

サンプルコード:あなたのURLについては

(app.js)

var express = require("express"); 
var app = express(); 
var request = require("request"); 
var port = 3000; 
var bodyParser = require("body-parser"); 

app.use(express.static(__dirname)); 

app.use(bodyParser.json()); 

app.get("/", function(request, response) { 
    response.sendFile(__dirname + "/index.html"); 
}); 

app.get("/test-data", function(req, res, next) { 
    var returnValue = [ 
     { 
      username : "MAIK", 
      fullname : "Michael" 
     }, 
     { 
      username : "CLARK", 
      fullname : "Clark" 
     }, 
     { 
      username : "ROLLY", 
      fullname : "Roland" 
     }, 
     { 
      username : "FLOYDIE", 
      fullname : "Floyd" 
     }, 
     { 
      username : "ZOE", 
      fullname : "Zoe" 
     } 
    ]; 

    res.send(returnValue); 

}); 

app.listen(port, function() { 
    console.log("Listening to port " + port + "..."); 
}); 

(MySampleService.js)

.service("MySampleService", function($http) { 

    this.sampleURL = "localhost:3000";  

    this.getTestData= function(){ 
     return $http 
     (
      { 
       method : "GET", 
       url : "http://" + this.sampleURL + "/test-data 
      } 
     ); 
    }; 
}); 
+0

ここであなたのサービスのURLをハードコーディングしています、 'this.sampleURL =" localhost:3000 ";' –

+0

@SudhansuChoudharyホストURLを宣言するHTTPリクエストを送信する方法はありますか? –

+0

には、dev、test、prod環境のスイッチ条件があり、これら3つのenvのホスト名が返されます。スイッチの状態から取得したenv値に基づいて、ホストURLまたはサービスに必要なURLをステッチします。しかし、 "location.hostname"を使用してホスト名を取得することができます。 –

答えて

2

、単に/test-dataを使用しています。要求は、アプリケーションがホストされているのと同じポートを使用することを自動的に認識します。

+1

それはあります!コメントを読んだ後、$ location.host()+ ":" + $ location.port()を試しました。しかし、私はこれがこれに対処する最も簡単な方法だと思います。 –

関連する問題