Я пытаюсь создать профили для каждого зарегистрированного пользователя, я пытался создать маршрут с идентификатором человека "/ profile / id:", но когда я пытаюсь получить доступ к этому маршруту, он автоматически регистрируется с учетные данные id
Зонд это , но оно работает только для текущего сеанса
users.controller. js
const usersCtrl = {};
const passport = require('passport');
const User = require('../models/user');
usersCtrl.renderSignUpForm = (req, res) => {
res.render('users/signup');
};
usersCtrl.signup = async (req, res) => {
const errors = [];
const { name, email, password, confirm_password, role } = req.body;
if (password != confirm_password) {
errors.push({ text: 'Passwords do not match' });
}
if (password.length < 4) {
errors.push({ text: 'Password must be at least 4 characters' });
}
if (errors.length > 0) {
res.render('users/signup', {
errors,
name,
email,
role
})
} else {
const emailUser = await User.findOne({ email: email });
if (emailUser) {
req.flash('error_msg', 'The email is already in use.');
res.redirect('/users/signup');
} else {
const newUser = new User({ name, email, password, role });
newUser.password = await newUser.encryptPassword(password);
await newUser.save();
console.log(User.role);
req.flash('success_msg', 'You are register');
res.redirect('/users/signin');
};
}
};
usersCtrl.renderSigninForm = (req, res) => {
res.render('users/signin')
};
usersCtrl.signin = passport.authenticate('local', {
failureRedirect: '/users/signin',
successRedirect: '/notes',
failureFlash: true
});
usersCtrl.logOut = (req, res) => {
req.logout();
req.flash('success_msg', 'You are logged out now.');
res.redirect('/users/signin');
};
usersCtrl.blog = (req,res) =>{
res.render('users/blog');
};
usersCtrl.profile = (req, res) =>{
User.findById(req.params.id, function(err, foundUser){
if(err){
res.status(404);
res.render('errors/404');
return
}
res.render('users/profile',{user: foundUser});
});
};
module.exports = usersCtrl;
Это маршруты
const { Router } = require('express');
const router = Router();
const { renderSignUpForm,
renderSigninForm,
signin,
signup,
logOut,
blog,
profile }
= require('../controllers/users.controller')
router.get('/users/signup', renderSignUpForm);
router.post('/users/signup', signup);
router.get('/users/signin', renderSigninForm);
router.post('/users/signin', signin);
router.get('/users/logout', logOut);
router.get('/blog/', blog);
router.get('/profile/:id', profile)
module.exports = router;
[1]: https://stackoverflow.com/questions/41468105/how-to-get-the-profile-of-current-user-in-node-js