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

标签 angular typescript httprequest protocols electron

我在Electron中嵌套了一个Angular 4应用程序,其中express.js从MongoDB中获取数据。但是,我现在停留在如何在http请求中与Express进行“对话” 的问题。

在这种 Angular 服务中,我有一种获取所有玩家数据的方法

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://一样,但我不知道解决此问题的方法。有什么建议吗?

最佳答案

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

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

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

无论API是远程服务器还是本地服务器,其基本URL都应进行硬编码:
export const API_BASE_URL = 'http://localhost:3456';
...
http.get(`${API_BASE_URL}/api/player/all`)...

关于angular - Electron中的Angular服务从Express错误获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43962145/

相关文章:

angular - 如何延迟 Angular 6/Typescript 中的可观察对象

html - 如何在 Angular 4 中为 ng-template 标签提供样式?

Angular 9 : Use component as directive

javascript - 定制组件 IONIC 4

c++ - 使用 POCO 上传文件 - SSL Connection Unexpectedly Closed Exception

javascript - 在 angular6 中点击 li 时函数没有执行?

angular - 同样的数据在angular9中显示不同,为什么?

typescript - 仅将指定的属性分配/复制到对象 (TS/JS)

java - 如何使用 Basic、Digest 和 NTLM/WindowsIdentity 获取 http 响应?

java - 如何使用 Java 构建具有正确实体的 http post 请求而不使用任何库?