2

当用户使用以下功能请求新密码时,我正在使用 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 调用?

4

0 回答 0