как передать ответ на запрос от одного маршрута к другому с помощью экспресс - PullRequest
0 голосов
/ 04 октября 2019

У меня есть следующие экспресс-маршруты:

router.get(
    "/auth/google/callback",
    passport.authenticate("google", { failureRedirect: "/error", session: false }),
    function(req, res) {
        var token = req.user.token;
        res.redirect("/getData?token=" + token);
    }
);

router.get('/getData', function(req, res) {
    var token = req.query.token;
  console.log(token)
request('https://www.googleapis.com/analytics/v3/management/accounts?access_token=' + token,  
function (error, response, body) {
          let views = []
   JSON.parse(body).items.forEach(view => {
            views.push({
              name: view.webPropertyId + ' - ' + view.name + ' (' + view.websiteUrl + ')'
            })
          })
res.redirect("/test?data="+ views);
  });
})

router.get('/test', function(req, res) {
  var testdata = req.user.data;
  console.log(testdata)
  res.send("ok")
})

У меня есть два журнала консоли console.log(token) и console.log(testdata). Первый консольный журнал работает, второй ничего мне не возвращает. Я пробовал много способов передать данные из запроса на тестовую страницу, но я не смог этого сделать. Почему?

1 Ответ

1 голос
/ 04 октября 2019

Похоже, вы пытаетесь передать данные через параметр запроса, а затем пытаетесь прочитать данные через req.user. Это выглядит как синтаксическая ошибка. Замените req.user.data на req.query.data.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...