#javascript #node.js #express
Вопрос:
(узел:7152) Необработанное предупреждение об ошибке: Ошибка типа: Не удается прочитать свойство «пароль» с нулевым значением при экспорте.вход (C:UsersnikoDesktopopaacontrollerscontroller.js:39:56) в процессе._tickCallback (внутренний/процесс/next_tick.js:68:7) (узел:7152) Предупреждение о необработанном обещании: Необработанное отклонение обещания. Эта ошибка возникла либо в результате выполнения асинхронной функции без блока catch, либо в результате отклонения обещания, которое не было обработано с помощью .catch(). (идентификатор отклонения: 1)
const User = require('../model/User');
const bcrypt = require('bcryptjs');
const jwt = require('jsonwebtoken');
exports.renderHomePage = (req, res, next) => {
res.render('index')
};
exports.register = async (req, res, next) => {
const emailExist = await User.findOne({email: req.body.email});
//if (emailExist) return res.send('Email Exist')
res.render('register')
const hash = await bcrypt.genSalt(10);
const hashPassword = await bcrypt.hash(req.body.pass, hash);
const user = new User({
email: req.body.email,
name: req.body.name,
password: hashPassword
})
try{
const savedUser = await user.save();
}catch(err){
}
};
exports.login = async (req, res, next) => {
const user = await User.findOne({ email: req.body.email1 });
//if (!user) return res.send("Invalid Email");
email1 = req.body.email1;
pass1 = req.body.pass1;
res.render('login')
const validPass = await bcrypt.compare(pass1, user.password);
res.send("logged in");
const token = jwt.sign({_id: user._id}, process.env.TOKEN);
res.header('auth-token', token).send();
};
Комментарии:
1. (узел:11672) Предупреждение о необработанном обещании: Отказ от необработанного обещания. Эта ошибка возникла либо в результате выполнения асинхронной функции без блока catch, либо в результате отклонения обещания, которое не было обработано с помощью .catch(). (идентификатор отклонения: 1)
2. поместите блок try catch в промежуточное программное обеспечение для входа со следующим вызовом : try{ …. } поймать(ошибка) { далее(ошибка) }
3. Он не может найти пользователя по электронной почте в вашей функции входа в
reg.body.email1
систему . Тело не содержитemail1
? Пользователь не существует?
Ответ №1:
Не забудьте использовать пакет bodyParser, чтобы ваше тело стало читаемым.