【发布时间】:2021-09-16 23:45:00
【问题描述】:
(node:7152) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'password' of null 在exports.login (C:\Users\niko\Desktop\opaa\controllers\controller.js:39:56) 在 process._tickCallback (internal/process/next_tick.js:68:7) (节点:7152) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 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();
};
【问题讨论】:
-
(node:11672) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。 (拒绝 ID:1)
-
在登录中间件中放置一个 try catch 块,下次调用:try{ .... } catch(error) { next(error) }
-
在
reg.body.email1的登录功能中无法通过电子邮件找到用户。正文不包含email1?用户不存在?
标签: javascript node.js express