Например есть вот такой код:
let userRouter = new Router({prefix: '/user'});//koa-router
userRouter.use(authCheck);
userRouter.get('/settings', async (ctx) => {
await ctx.render('settings',{message: '???'});//Откуда брать сообщение, если это уже другой ctx?
});
userRouter.post('/settings', async (ctx) => {
const data = ctx.request.body;
if(!data.email || !data.email.length) ctx.message = 'Введите почту!';
if(!data.password || !data.password .length) ctx.message = 'Введите пароль!';
await ctx.redirect('/user/settings');
});
Как выводить информацию пользователю, если он перенаправляется с этой страницы?
Корректно ли рендерить в двух местах, например при ошибке рендерить эту же страницу в пост запросе, вот так:
userRouter.get('/settings', async (ctx) => {
await ctx.render('settings',{message: false});//#1
});
userRouter.post('/settings', async (ctx) => {
const data = ctx.request.body;
let err = false;
if(!data.email || !data.email.length) err = 'Введите почту!';
if(!data.password || !data.email.password) err = 'Введите пароль!';
await ctx.render('settings', {message: err});//#2
});
Если это нормально решение, то как выводить информацию, например о успешном входе, там явно должно быть перенаправление со страницы авторизации.