const {Router} = require('express');//модуль express const User = require('../models/user');//модель пользователя const router = Router();//инициируем роутер /** * Страница /auth/login */ router.get('/login',(req, res) => { res.render('auth/login',{//шаблон template/auth/login.hbs title: 'авторизация' }); }); /** * Авторизуем пользователя * первый параметр адрес страницы, в данном случае используется префикс при регистрации ройтера, * второй параметр callback - обработчик запроса req - request , запрос от браузера * res - response, ответ сервера */ router.post('/login', async (req, res) => { try{ const {email, password} = req.body;//данные post const candidate = await User.findOne({email: email});//получить пользователя if(candidate){//если пользователь существует const areSame = password === candidate.password;//сравниваем пароль if(areSame){//если пароль совпадает req.session.user = candidate;//получить пользователя, пока пользователь статичен req.session.isAuthenticated = true;//добавить в сессию свойство isAuthenticated = true req.session.save(err => {//метод необходим только в том случае когда, нужно подождать пока не сохранится сессия if(err){ throw err; } res.redirect('/');//редирект на главную страницу, // будет выполнен только после того как сессия сохранилась }); } else{ res.redirect('/auth/login#login'); } } else{ res.redirect('/auth/login#login'); } }catch(err){ console.log(err); } }); module.exports = router;//Экспортирум роутер