解决Apollo Server Express Playground无法访问提示Server cannot be reached问题
问题根因
你遇到的报错核心原因是 Playground的请求发送路径和Apollo Server在Express上的挂载路径不匹配:
- Apollo Server 调用
applyMiddleware绑定Express时,如果不指定path参数,默认会把GraphQL接口挂载在/graphql路径 - 你引入的旧版Playground插件默认会向站点根路径
/发送POST查询请求,根路径没有对应接口,所以返回404错误
解决方案说明
你采用的修改方案是正确的:将apolloServer.applyMiddleware({ app });修改为apolloServer.applyMiddleware({ app, path: "/" });,相当于手动指定Apollo Server的接口挂载到根路径,和Playground的默认请求路径对齐,因此解决了问题。
如果你不想把GraphQL接口挂载到根路径,也可以在初始化Playground插件时,手动指定查询请求的目标路径为/graphql,无需修改挂载路径。
内容的提问来源于stack exchange,提问作者Raigato
相关产品推荐
相关产品推荐

