2017-05-14 11 views
1

ElectronにはAngular 4アプリがネストされており、express.jsはMongoDBからデータを取得しています。しかし、私は今どのように"おしゃべり"のHTTPリクエストで明白な方法で立ち往生しています。その角度サービスでElectronの角度サービスはExpressエラーからデータを取得

私は今、すべてのプレイヤーデータ

dataUrl: string = "/api/player/all"; 
getPlayers(): Observable<any> { 
    return this.dataService.getCookedData(this.dataUrl, this.finalizePlayerData); //the function pointing to data. It works in regular web browser. 
} 

次にexpress.jsで、リスニングAPIが設定されている

を取得するための方法、

router.get('/all', (req: Request, res: Response) => { 
    player.find().then((result) => { 
    res.send(result); 
    }); 
}); 

とアプリの出会いを持っています

zone.jsと404エラー:1980 GETファイル:/// API /プレーヤー/すべてのネット:: ERR_FILE_NOT_FOUND

私は問題がfile:///であることを知っています。これはhttp://のようにすべきですが、これを修正する方法はわかりません。何かアドバイス?

答えて

1

ウィンドウがローカルファイルからロードされ、サーバーを表現されていません。

browserWindow.loadUrl('file:///index.html') 

は、同じベースURLは(Httpを含む)すべてのXHR要求に使用されることが期待されます。

APIは、リモートまたはローカルサーバであるかどうか、そのベースURLがハードコーディングされなければなりません:

export const API_BASE_URL = 'http://localhost:3456'; 
... 
http.get(`${API_BASE_URL}/api/player/all`)... 
+0

うわー作品!私は常にサービスのフルパスを与えなければならないと思います。 – Valorad

+0

ブラウザで実行している場合でも、APIは異なるサブドメインなどに存在できます。 – estus

関連する問題