Перенаправление обновленного запроса не показывает - PullRequest
1 голос
/ 16 февраля 2020

Я пытаюсь передать обновленный запрос (req.update), добавляя к нему объект, но при перенаправлении с одного маршрута ('/') на другой ('/ dashboard') он не удерживает обновления на (req.update).

router.post('/signin' , myAuth, signIn);
function signIn (req , res , next){
  console.log(req.userId, 'woooooooooooooorked');
  // router.get('/dashboard');
  res.redirect(303 ,'/dashboard');
  // next(res.redirect('/dashboard'));
} 
router.get('/dashboard' , dashboard) ;

async function dashboard(req ,res ,next){
  console.log(req.userId , '*********');

  let scanResult = await Model.get(req._id);
  console.log(scanResult , 'dashboard');
  res.status(200).send(scanResult);
}

1 Ответ

0 голосов
/ 16 февраля 2020

Когда вы используете res.redirect, он отправляет клиенту ответ с заголовками redirect, а затем клиент инициирует новый запрос, поэтому все предыдущие данные будут потеряны.

Вы можно использовать метод app.set() для установки данных и получения их по другим маршрутам.

Пример.

router.post('/signin' , myAuth, signIn);
function signIn (req , res , next){
  app.set('userId', req.userId);
  console.log(req.userId, 'woooooooooooooorked');
  res.redirect(303 ,'/dashboard');
} 
router.get('/dashboard' , dashboard) ;

async function dashboard(req ,res ,next){
  console.log(req.userId , '*********');

  let scanResult = await Model.get(app.get('userId'));
  console.log(scanResult , 'dashboard');
  res.status(200).send(scanResult);
}

Или вы можете использовать query strings для передачи данных.

Пример:


router.post('/signin' , myAuth, signIn);
function signIn (req , res , next){
  console.log(req.userId, 'woooooooooooooorked');
  res.redirect(303 ,'/dashboard?userId=' + req.userId);
} 

router.get('/dashboard' , dashboard) ;

async function dashboard(req ,res ,next){
  console.log(req.userId , '*********');

  let scanResult = await Model.get(req.query.userId);
  console.log(scanResult , 'dashboard');
  res.status(200).send(scanResult);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...