Как обслуживать сборку папки в Коа? - PullRequest
0 голосов
/ 12 февраля 2019

Я написал простое приложение todo и пытаюсь развернуть его в Heroku.Я развернул на героку раньше, я использовал Express + React .В моем файле server.js был этот фрагмент кода:

if (process.env.NODE_ENV === 'production') {
    app.use(express.static('client/build'));
    app.get('*', (req, res) => {
        res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
    });
}

Этот фрагмент кода служит для папки «build», если приложение находится в производстве, а также отправляет «index.html» для каждого запроса.

Мне нужен подобный код, но для Koa + React .Koa - это очень минималистичный фреймворк, поэтому я думаю, что должны быть установлены дополнительные пакеты, я не знаю, какие из них.Я попытался koa-send и koa-static , но не смог их настроить.Как мне это сделать?

1 Ответ

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

Я не могу проверить это прямо сейчас, но я думаю, что это будет примерно так:

const Koa = require('koa');
const Router = require('koa-router');
const send = require('koa-send');
const static = require('koa-static');

const app = new Koa();
const router = new Router();

if (process.env.NODE_ENV === 'production') {
  app.use(static('./client/build'));

  router.get('*', async (ctx, next) => {
    try {
      await send(ctx, './client/build/index.html');
    } catch(err) {
      // TODO: handle err?
      return next();
    }
  });
}

app.listen(3000);
...