Как обслуживать index.html для React и обрабатывать маршрутизацию по одним и тем же путям? - PullRequest
0 голосов
/ 08 февраля 2019

При использовании реакции вам нужно обслуживать index.html с включенным в него response_app.js на любом маршруте, если пользователь не скачал response_app.js (пришел впервые).

Затем вам нужно обслуживать некоторые вызовы APIиз response_app.js, но если вы используете тот же URL для GET, скажем, вы получите ответ на вызов API, а не index.html с response_app.js.

Какое решение для этого?Выполнять вызовы API только с некоторым префиксом и отправлять index.html, только если маршрут не найден?

Мой код:

fastify.register(require('fastify-static'), {
  root: path.join(__dirname, './static')
})

fastify.route({
  method: 'GET',
  url: '/',
  handler: async (req, res) => {
    res.send('you will get api call answer but you need to serve index.html with react_app.js first!!!!')
  }
})

1 Ответ

0 голосов
/ 08 февраля 2019

Как подсказал @Garrert, вот как это будет работать:

// Статические файлы
fastify.register(require('fastify-static'), {
  root: path.join(__dirname, './static')
})

// this will work with fastify-static and send ./static/index.html
fastify.setNotFoundHandler((req, res) => {
  res.sendFile('index.html')
})

// Here go yours routes with prefix
fastify.register(async openRoutes => {
  openRoutes.register(require('./server/api/open'))
}, { prefix: '/api' })
...