在异步等待中永远停止等待
我正在使用NodeJS express和MongoDB为我的网站创建注册系统。在下面的代码中,进行测试时,我的程序始终在let usernameExist = await ...行处停止,目前在MongoDB Atlas数据库中未输入任何数据,因此这意味着当我调用< [User.findOne(...),如果我正确的话,它应该返回null。但是,它永远在Postman中的这一行代码处停止,并最终返回“无法获得任何响应”,而无需继续执行其余代码。为什么是这样?
router.post('/signup', async(req, res) => {
let errors = [];
//validate data
const {error} = schema.validate(req.body);
//schema defined above with package @hapi/Joi
if(error) errors.push(error.details[0].message);
let usernameExist = await User.findOne({username: req.body.username});
if(usernameExist) errors.push("Username already exists");
//Hash the password
const salt = await bcrypt.genSalt(10);
const hashPassword = await bcrypt.hash(req.body.password, salt);
if(errors.length == 0 ){
//adds data in database if no errors are present with json fields
const user = new User({
username: req.body.username,
password: hashPassword,
});
try{
const savedUser = await user.save();
res.send(savedUser);
}
catch(err){
res.json({message: err});
}
}
});
回答如下:
更多推荐
在异步等待中永远停止等待
发布评论