首页 > 解决方案 > 我希望代码到此结束。以下步骤不再继续。我该怎么做?

问题描述

User.findOne({ where: { email: email } })
 .then(user => {
   if(user){
     req.session.errorMessage = 'This e-mail address has already been registered. ';
     req.session.save();
     return res.redirect('/register'); 
}
     return bcrypt.hash(password, 10);
}).then(hashedPassword =>{
            .......
        }).then(() => {
            .......   
        }).then(() => {
            .......
        }).catch(err => console.log(err));
};

[return res.redirect('/register');] 如果用户不存在我希望代码在这里结束。以下步骤将不再继续。

我该怎么做?

标签: node.js

解决方案


尝试分解逻辑并命名函数:


User.findOne({ where: { email: email } })
 .then(user => {
   if(user){
     req.session.errorMessage = 'This e-mail address has already been registered.';
     req.session.save();
     return res.redirect('/register'); 
   }
   return saveHashedUser(user, bcrypt.hash(password, 10));
})

function saveHashedUser(user, hashedPassword) {
  return hashedPassword =>{
            .......
        }).then(() => {
            .......   
        }).then(() => {
            .......
        }).catch(err => console.log(err));
}


推荐阅读