Как гидрировать клиент Apollo с сервера NextJS - PullRequest
0 голосов
/ 26 апреля 2019

Я использую пользовательский сервер NextJS с клиентом Apollo. Я хочу получить данные GraphQL на стороне сервера и затем отправить их клиенту. Я был в состоянии сделать это, но клиентская сторона получает это снова. Я понимаю, что кеш Apollo доступен только на сервере, после чего его необходимо отправить клиенту и восстановить оттуда.

В Apollo docs упоминается SSR, но я не хочу полностью рендерить свое приложение с помощью клиента Apollo, я хочу использовать NextJS, я хочу получить только данные из клиента Apollo и ввести вручную это в HTML, чтобы восстановить его на клиенте. Я посмотрел несколько примеров использования NextJS с использованием Apollo, но ни один из них не показал, как именно это сделать.

Это мой пользовательский обработчик запросов:

const app = next({ dev: process.env.NODE_ENV !== 'production' });

const customHandler = async (req, res) => {
  const rendered = await app.renderToHTML(req, res, req.path, req.query);
  // somehow get the data from the apollo cache and inject it in the rendered html
  res.send(rendered);
}
...