Я пытаюсь поймать идентификатор пользователя из текущего сеанса, чтобы я мог сделать функцию удаления профиля.
Я использую экспресс с экспресс-сессиями, мангустом, паспортом.
Код, который я использую для удаления пользователя, работает, я скопировал идентификаторы из моей базы данных 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, чтобы я мог удалить зарегистрированный профиль. Спасибо!