ApolloServer3ExpressmiddlewarenotworkingwithReactSSRRouting
创始人
2024-09-09 12:30:41
0
  1. 首先,需要确保你的React SSR应用程序和Apollo Server都在同一个端口上运行,在启动Apollo Server时指定端口号,然后使用Express中间件来将其绑定到应用程序上。示例代码如下:

const express = require('express'); const { ApolloServer } = require('apollo-server-express'); const http = require('http');

const typeDefs = ... // 定义schema const resolvers = ... // 定义resolver

const server = new ApolloServer({ typeDefs, resolvers });

const app = express();

// 将Apollo Server绑定到应用程序上 server.applyMiddleware({ app });

// 将React SSR应用程序的路由和中间件添加到应用程序上 app.use('/', require('./ssrRouter'));

// 创建HTTP服务器并将应用程序绑定到它上面 const httpServer = http.createServer(app); httpServer.listen({ port: 4000 }, () => { console.log(� Server ready at http://localhost:4000${server.graphqlPath}); });

  1. 其次,需要在React SSR应用程序中确保你的路由和Apollo Client在同一个上下文中运行。这可以通过在服务器端创建一个Apollo Client实例并将其传递给React组件的Context中来实现。示例代码如下:

import React from 'react'; import ReactDOMServer from 'react-dom/server'; import { ApolloProvider, ApolloClient, InMemoryCache } from '@apollo/client'; import { StaticRouter } from 'react-router-dom';

const ssrRouter = require('./ssrRouter');

// 初始化Apollo Client实例 const apolloClient = new ApolloClient({ uri: 'http://localhost:4000/graphql', cache: new InMemoryCache() });

// 处理React SSR的请求 function handleRequest(req, res) { const App = ( {ssrRouter} );

const html = ReactDOMServer.renderToString(App);

// 将HTML响应发送给客户端 res.send( React SSR Example

${html}
); }

module.exports = handleRequest;

通过这些步骤,你应该能

相关内容

热门资讯

发现玩家!朋朋政和辅助,闲逸辅... 发现玩家!朋朋政和辅助,闲逸辅助器下载,详细app(有挂秘笈)1、玩家可以在闲逸辅助器下载线上大神俱...
玩家爆料!四川长牌皮皮游戏挂,... 玩家爆料!四川长牌皮皮游戏挂,微信牵手跑辅助,详细方法(真是有挂)该软件可以轻松地帮助玩家将四川长牌...
研究成果!牵手跑得软件,大咖娱... 研究成果!牵手跑得软件,大咖娱乐挂脚本,详细教程(有挂方法)一、大咖娱乐挂脚本游戏安装教程牌型概率发...
必知教程!微友圈app辅助工具... 必知教程!微友圈app辅助工具,微信小程序挂件辅助,详细脚本(讲解有挂)微信小程序挂件辅助破解侠是真...
实测分享!潮汕鱼虾蟹app源码... 实测分享!潮汕鱼虾蟹app源码,开心泉州小程序辅助免费下载,详细器(有挂透视)开心泉州小程序辅助免费...
今日头条!光明大厅透视辅助,天... 今日头条!光明大厅透视辅助,天天透视辅助工具,详细插件(有挂详细)1、许多玩家不知道天天透视辅助工具...
盘点一款!扣点点脚本辅助器,乐... 盘点一款!扣点点脚本辅助器,乐酷副厅外挂,详细工具(有挂方法)扣点点脚本辅助器是不是有人用挂微扑克w...
推荐十款!微乐云南小程序辅助器... 推荐十款!微乐云南小程序辅助器,边锋嘉兴辅助,详细挂(有挂总结)一、微乐云南小程序辅助器可以开透视的...
三分钟了解!微信小程序雀神挂件... 三分钟了解!微信小程序雀神挂件辅助,同城上饶辅助,详细脚本(有挂教学)1、微信小程序雀神挂件辅助辅助...
推荐几款新版!闲逸碰胡辅助器,... 推荐几款新版!闲逸碰胡辅助器,边锋干瞪眼脚本,详细技巧(有挂规律)该软件可以轻松地帮助玩家将闲逸碰胡...