Проблема при входе в аккаунт на сервере(node.js, mongoDB)

Я только недавно начал изучать серверы. Когда обрабатывается if(!user) мне всегда выдает json, res.status(404).json({ message: 'User not found' }); вне зависимости от того, совпадают електронные почты или нет. Я думаю что router и сервер правильно работает, но могу если что дать их код. Я пробовал разные решения, stackoverflow, GitHub, но в конце оставил это, которое наиболее распостраненное. Перепроверял все, смотрел на ошибки, гайды на youtube, но четно. Мне нужна только помощь в проверке login и password(в базе password хеширован через bcrypt) в базе данных. В сессиях, я попробую сам разобраться. Вот код контроллера log_reg-controller.js

const Users = require('../models/users');
const createPath = require('../helpers/create-path');
const { handleError } = require('../controllers/error-controller');
const bcrypt = require('bcryptjs');
const jwt = require('jsonwebtoken');
const secret = require('../server');
const getLogsuccess = (req, res) => {
    const title = 'Залогінен';
    res.render(createPath('login_success'), { title });
}
const getLog = (req, res) => {
    const title = 'Логін';
    res.render(createPath('form'), { title });
}
const postLog = async (req, res) => {
    const { login, password, roles } = req.body;
  
    try {
      const user = await Users.findOne({ login: login });
      if (!user) {
        return res.status(404).json({ message: 'User not found' });
      }
      const hashedPass = bcrypt.hashSync(toString(password), 7);
      const passwordMatch = await user.compareSync(hashedPass, user.password);
      if (!passwordMatch) {
        return res.status(401).json({ message: 'Incorrect password' });
      }
  
      const token = jwt.sign({ userId: user._id }, secret, {
        expiresIn: '1 hour'
      });
      res.json({ token });
      res.redirect(createPath('login_success'));
    } catch (error) {
      console.log(error);
    res.status(500).json({ message: "Не удалось авторизоваться." });

    }
  };
const getRegsuccess = (req, res) => {
    const title = 'Акаунт зареєстрован';
    res.render(createPath('registration_success'), { title });
}
const postReg = (req, res) => {
        const { login, password, roles } = req.body;
        let hashPassword = bcrypt.hashSync(password, 7);
        const newUser = new Users({ login, password: hashPassword, roles: "USER"});
        newUser
          .save()
          .then((result) => res.redirect('/registration_success'))
          .catch((error) => handleError(res, error))  
}
const getReg = (req, res) => {
    const title = 'Реєстрація';
    res.render(createPath('registration'), { title });
}
module.exports = {
    getLogsuccess,
    postLog,
    getLog,
    getRegsuccess,
    postReg,
    getReg
}


Ответы (0 шт):