Как обслуживать файл index. html с сервером Apollo? - PullRequest
0 голосов
/ 08 марта 2020

У меня есть этот код в index.js:

const PORT = process.env.PORT || 5000;
server.listen(PORT).then({ url }) => {
  console.log(`Server running at url: ${url}`);
});

В локальной разработке, когда я выбрал localhost:5000 в своем браузере, я мог протестировать с GraphQL площадкой.

Я только что закончил развертывание с Heroku. Когда я go на свой URL-адрес, я вижу: GET query missing. Я предполагаю, что это происходит, потому что apollo пытается открыть игровую площадку GraphQL, но она заблокирована в производственном режиме.

Как я могу сказать apollo вместо client/index.html?

Примечание: я пытался также поместить index. html в каталог root, но ничего не изменилось.

В видео-уроке я видел, что Ответ на этот вопрос в express:

app.use(express.static('client'));

app.get('*', (req, res) => {
  res.sendFile(path.resolve(__dirname, 'client','index.html'));
});

Я не знаю, как это сделать в Аполлоне.

1 Ответ

1 голос
/ 08 марта 2020

Автономный сервер Apollo нельзя использовать для обслуживания статичных файлов c или для демонстрации других конечных точек. Если вам нужна эта функциональность, вам нужно использовать HTTP-фреймворк, такой как Express, Hapi или Koa, а затем использовать соответствующую интеграцию Apollo Server .

Пример использования Express:

const server = new ApolloServer({ ... });

const app = express();

server.applyMiddleware({ app });

app.listen({ port: 4000 }, () =>
  console.log(`? Server ready at http://localhost:4000${server.graphqlPath}`)
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...