Я только что создал сервер expressJs для SSR с apollo Graphql. У меня есть эта проблема: после запуска страницы источник страницы - это то, что ожидалось, но до тех пор, пока сервер не запущен, эти данные, полученные Graphql, никогда не меняются.
это то, что у меня есть в источнике страницы:
В настоящее время я использую http://fake.graphql.guru/graphql, чтобы получить фиктивные данные, и там данные меняются при каждом запросе случайным образом.
Следуя коду expressjs и конфигурации apolloClient
// express js
app.get('*', (req, res, next) => {
renderToStringWithData(<StaticRouter location={req.url} context={{}}><App /></StaticRouter>).then((content) => {
const initialState = client.extract();
res.status(200);
res.setHeader('Cache-Control', 'no-cache');
res.send(Template({
content,
state: initialState,
}));
next();
});
});
// apollo client
const client = new ApolloClient({
ssrMode: true,
link: new HttpLink({
fetch,
uri: 'http://fake.graphql.guru/graphql',
}),
cache: new InMemoryCache().restore(process.env.NODE_ENV !== 'PROD' ?
window.__APOLLO_STATE__ : null),
defaultFetchPolicy: 'network-only',
ssrForceFetchDelay: 100,
});
Итак, что я ожидаю при каждом запросе, так это сервер, возвращающий новую страницу html с новыми данными. Что случилось?