是否有可能有一个 Apollo 服务器,为同一个应用程序提供 React 客户端?



我是服务器上的Apollo和JS新手,但对React,GraphQL等并不陌生。我正在尝试一种干净的方式来让服务器使用 Apollo 同时为 API 提供服务,但也为客户端提供服务,该客户端将使用 ReactJS 和 Apollo 构建。

我阅读了有关 Apollo 服务器端渲染的文章。将来我可能会对此感兴趣,但现在,我只对从单个服务器部署单个项目而不是两个项目感兴趣。

可以干净利落地做到这一点吗?有没有规范的方法?它可以使用创建-反应-应用程序还是不可能?

如果您不进行服务器端渲染,而只想像使用 CRA 构建的那样提供单页应用程序 (SPA(,则可以使用几乎任何 HTTP 框架,甚至不使用 HTTP 框架。CRA只是为您构建一些静态内容,您可以使用例如Express来提供这些内容(请参阅此处的文档(。但是,通常最好利用Nginx或Apache来提供这些内容(至少在生产中(。如果要使用 Express 或其他 HTTP 框架来提供文件,则可以使用 Apollo Server 的适当集成。如果你使用的是Nginx,那么你可以坚持使用独立的库,假设你不想在你的HTTP服务器上公开任何其他路由。

在开发中,您不希望在进行更改时不断手动重建 React 应用程序,因此 CRA 实际上为您运行一个服务器来为应用程序提供服务并启用热重载。由于这是独立于 API 服务器的服务器,因此通常需要启用对 API 的请求的代理。

有可能,apollo 的设置与任何服务器相同,例如,您可以使用 express 来提供静态文件并通过一些小的更改实现 apollo 请参阅阿波罗服务器 Express 的文档并实现您熟悉的文档

最新更新