当用户使用以下功能请求新密码时,我正在使用 nodemailer 模块从节点服务器发送邮件:
function(email, password, callback) {
var smtpTransport = nodemailer.createTransport('SMTP', {
service: 'Gmail',
auth: {
user: 'something@gmail.com',
pass: 'my_password'
}
});
var mailOptions = {
from: 'My Team<something@gmail.com>',
to: email,
subject: 'new password',
text: 'login with email: ' + email + 'and password: ' + password,
html: '<p>login with email: ' + email + ' and password: ' + password +
'<br> Visit here to learn more ' + ' <a href=\"www.google.com\">google</a></p>'
};
smtpTransport.sendMail(mailOptions, function(err, res) {
if(err) {
smtpTransport.close();
return callback(err);
} else {
smtpTransport.close();
return callback(null);
}
});
};
我使用的电子邮件 ID 是有效的。用户确实从这个 id 收到一封包含新生成的随机密码的邮件。然而,恰好 8 小时后,他再次收到一封邮件,其中包含另一个新生成的随机密码。我不知道如何在服务器端 8 小时后再次调用此函数。
我正在使用 winston 记录所有 api 调用和在请求对象中收到的数据。然而,时间戳格式对我来说并不熟悉。如何将winston记录的“时间戳”:“2013-09-13T19:39:16.814Z”转换为我的当地时间?此外,由于 node.js 的异步特性,记录 api 调用的顺序都是交错和混乱的。如何按调用和服务的顺序记录 api 调用?