500 内部服务器错误,nodejs 重置密码函数中的请求超时

500 Internal Server Error,Request Timeout in nodejs resetpassword function

我是 Nodejs 和 ES6 的新手。我编写了用于登录和注册的代码,resetpassword.I已经知道了 "This request takes too long to process, it is timed out by the server. If it should not be timed out, please contact administrator of this web site to increase 'Connection Timeout"。当我尝试在 nodejs.I 中调用重置密码时使用 es6 modules.How 我可以更正这些代码吗?

我的代码:

   export const resetPasswordInit=(req,res)=>{
  User.findOne({email:req.body.email},(err,user)=>{
    if(err) throw err;
    if(user){
        const random=randomstring.generate(12);
        user.tempPassword=bcrypt.hashSync(random,10);
        user.tempPasswordTime=new Date();
        user.save((err,user)=>{
            if (err)
            return res.status(400).send({
                message:err
            });
              const transporter=nodemailer.createTransport({
                host: 'mail.example.com',
                port: 465,
                secure: true, 
                  auth: {
                 user: "info@example.com",
                pass: "example12"
              }
             });

              const mailOptions={
                  from :'Sender Name <info@example.com>s',
                  to : req.body.email,
                  subject:'Reset Password Request',
                  html: `
                  <h1>Hi,</h1>
                  <h2>Here is your password reset key</h2>
                  <h2><code contenteditable="false" style="font-weight:200;font-size:1.5rem;padding:5px 10px; background: #EEEEEE; border:0">${random}</code></h4>

                  thanks,
                `
              };
                     transporter.sendMail(mailOptions, function(error){
          if(error){
          console.log('Error occured');
         console.log(error.message);
     return;
   }
  else
  {
 console.log('Message sent successfully!');
 }

 });
        })
    }
    else{
        res.status(401).json({ message: 'failed. No user found!'});
    }
});
}

当一切顺利时,即成功案例,您从未回应。尝试在发送邮件后添加以下行,即在 transporter.sendMail 回调函数的末尾。

res.status(200).json({
  message: 'Message sent successfully!'
});

此外,请确认您使用的是有效的 smtp 凭据和服务器地址。