我有一个嵌套在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://
,但我不知道解决这个问题的方法。有什么建议吗?
答案 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`)...