Node.js Nodemailer在8小时后再次发送邮件

Node.js Nodemailer在8小时后再次发送邮件,node.js,winston,nodemailer,Node.js,Winston,Nodemailer,当用户使用以下功能请求新密码时,我使用NodeEmailer模块从节点服务器发送邮件: function(email, password, callback) { var smtpTransport = nodemailer.createTransport('SMTP', { service: 'Gmail', auth: { user: 'something@gmail.com', pass: 'my_pa

当用户使用以下功能请求新密码时,我使用NodeEmailer模块从节点服务器发送邮件:

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);
        }
    });
};
函数(电子邮件、密码、回调){
var smtpTransport=nodemailer.createTransport('SMTP'{
服务:“Gmail”,
认证:{
用户:'something@gmail.com',
密码:“我的密码”
}
});
var mailpoptions={
来自:“我的团队”,
致:电邮:,
主题:“新密码”,
文本:'使用电子邮件登录:'+email+'和密码:'+password,
html:'使用电子邮件“+email+”和密码“+password”登录+
“
访问此处了解更多”+“

” }; 发送邮件(邮件选项,函数(err,res){ 如果(错误){ smtpTransport.close(); 返回回调(err); }否则{ smtpTransport.close(); 返回回调(null); } }); };
我使用的电子邮件id是有效的。用户确实从这个id获得了一封包含新生成的随机密码的邮件。然而,在整整8小时后,他再次收到一封邮件,其中包含另一个新生成的随机密码。我不知道在服务器端8小时后如何再次调用此函数

我使用winston记录所有api调用和请求对象中接收的数据。然而,时间戳格式对我来说并不熟悉。我如何转换这个 “时间戳”:“2013-09-13T19:39:16.814Z”由温斯顿记录到我的本地时间?此外,由于node.js的异步特性,api调用的记录顺序都是交错和混乱的。如何按调用和服务的顺序记录api调用