У меня есть маршрут входа в систему router.post('/login', authController.login).
Мой контроллер использует паспорт и выглядит так:
exports.login = passport.authenticate('local', {
failureRedirect: '/login',
failureFlash: 'Failed Login',
successRedirect: '/',
successFlash: 'You are now logged in'
});
Это нормально работает, но я хочу перенаправить на /store
, если у пользователя нет устройства, и /device
, если оно есть, на основании запроса:
const devices = await Device.find({ owner: req.user._id });
Каков наилучший способ сделать это? Я попробовал:
router.post('/login', authController.login, deviceController.hasDevice);
exports.login = (req, res, next) => {
passport.authenticate('local', {
failureRedirect: '/login',
failureFlash: 'Failed Login'
});
next();
};
exports.hasDevice = async (req, res) => {
const devices = await Device.find({ owner: req.user._id });
if (!devices.length) {
res.render('store', { title: 'Store' });
} else {
res.render('devices', { title: 'My Devices', devices });
}
};
но на req нет пользовательского объекта, когда я добираюсь до hasDevice. То есть Я получаю сообщение "не могу найти _ид неопределенного".