Electron中的Angular服务从Express错误中获取数据

时间:2017-05-14 09:02:13

标签: angular typescript httprequest protocols electron

我有一个嵌套在Electron中的Angular 4应用程序,使用express.js从MongoDB获取数据。但是我现在仍然坚持如何在http请求中使用express “talk”

在该角度服务中,我有一种获取所有玩家数据的方法

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);
  });
});

现在该应用程序遇到了404错误

  

zone.js:1980 GET file:/// api / player / all net :: ERR_FILE_NOT_FOUND

我知道问题出在file:///,它应该像http://,但我不知道解决这个问题的方法。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

从本地文件而不是Express服务器加载窗口时:

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

预计相同的基本URL将用于所有XHR请求(包括Http)。

无论API是远程服务器还是本地服务器,其基本URL都应该是硬编码的:

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