Не удается получить идентификатор пользователя из сеанса экспресс - PullRequest
1 голос
/ 03 июня 2019

Я пытаюсь поймать идентификатор пользователя из текущего сеанса, чтобы я мог сделать функцию удаления профиля. Я использую экспресс с экспресс-сессиями, мангустом, паспортом.

Код, который я использую для удаления пользователя, работает, я скопировал идентификаторы из моей базы данных mongo в код, и они просто удалились. Проблема должна быть в том, чтобы поймать ID.

Я могу получить идентификатор пользователя, используя этот фрагмент кода в одном из моих файлов .pug:

ID: # {user.id} // выводит: "5cf51df175eb3842c461f9ae"

У меня есть проект на моем github @ https://github.com/LarsBreuren/Muzika

Это моя функция удаления, которая выдает ошибку: «Невозможно прочитать свойство« _id »из undefined». Когда я вставляю идентификатор из моего mongoDB в const id, он работает просто отлично, поэтому я предполагаю, что req.session.user._id недействителен

router.get('/delete', (req, res) => {
  const id = req.session.user._id
  User.findOneAndRemove({_id: id }, (err) => {
    if (err) {
      console.log(err)
      res.status(500).send()
    } else {
      console.log('User removed')
      return res.status(200).send()
    }
  })
})

Это фрагменты, которые я использую для своего паспорта:


passport.serializeUser(function(user, done) {
  done(null, user.id);
});

passport.deserializeUser(function(id, done) {
  User.getUserById(id, function(err, user) {
    done(err, user);
  });
});

И это моя сессия:

app.use(session({
  resave: false,
  saveUninitialized: true,
  secret: 'ilikecats',
}));

Я надеюсь получить идентификатор пользователя в идентификаторе const, чтобы я мог удалить зарегистрированный профиль. Спасибо!

1 Ответ

0 голосов
/ 03 июня 2019

«Невозможно прочитать свойство« _id »из неопределенного» предполагает, что «пользователь» не является элементом «сеанса» в объекте запроса, или ожидаемое значение не передается с вашим запросом. Я бы предложил запустить отладчик и посмотреть, что находится в объекте запроса, в строке, где вы объявляете свою константу. Вы должны увидеть, что данные поступают не так, как вы думаете. Оттуда вы можете сравнить данные, которые вы получаете, и данные, которые вы ожидаете, и скорректировать ваш ввод.

Надеюсь, это поможет каким-то образом. :)

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