【发布时间】:2019-08-15 06:41:04
【问题描述】:
我是 Nodejs 和 ES6 的新手。我编写了登录、注册和重置密码的代码。我有这个 “此请求处理时间过长,已被服务器超时。如果不应该超时,请联系本网站管理员增加“连接超时”。当我尝试在 nodejs 中调用重置密码时。我使用 es6 模块。如何更正这些代码。
我的代码:
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!'});
}
});
}
【问题讨论】:
-
在成功的情况下你永远不会响应请求。
-
Tnx @jonrsharpe ,我更正了,但还不行
-
你没有更正它,你的代码仍然没有响应。
-
@jonrsharpe 请告诉我,问题出在哪里?
-
@jonrsharpe ,我认为问题不是因为响应,它甚至不发送电子邮件。
标签: javascript node.js express ecmascript-6 es6-modules