Задать вопрос

Как сделать redirect на koa?

Для рендеринга использую Pug.

Вариант 1:

app.use(async (ctx, next) => {
    if (ctx.status === 404) {// always is 404
      ctx.redirect('/node/404');
    }
    await next();
  });

Используется мидлвер для ловли отсутсвующих страниц, но у коа статус всегда 404, если его не изменить в ручную. Соответственно редирект будет происходить с любой страницы. Но! Страница, на которую редиректит, вообще не рендерится, а nginx (он для статики) выдает "this page unreachable".

Вариант 2:

const router = new Router({prefix: 'auth'});
router.post('/signin', authController.signIn);

async signIn(ctx) {
   // проверяю параметры и по их результатам делаю редирект

    ctx.redirect('/node');
  },

В этом случае вместо редиректа я получаю в теле ответа html отрендеринной страницы, на которую, собсно, и
должен происходить редирект (как будто делаю ctx.body = {data: pug.renderFile(pattern)})
  • Вопрос задан
  • 150 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы