ユーザーが次の関数を使用して新しいパスワードを要求したときに、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時間後にこの関数が再度呼び出される方法がわかりません。
すべてのAPI呼び出しとリクエストオブジェクトで受信したデータを記録するためにwinstonを使用しています。ただし、タイムスタンプの形式は私にはなじみがありません。winston によって記録されたこの "timestamp":"2013-09-13T19:39:16.814Z" を現地時間に変換するにはどうすればよいですか? また、node.js の非同期性により、API 呼び出しがログに記録される順序はすべてインターリーブされ、めちゃくちゃになります。API 呼び出しを呼び出されて提供された順序でログに記録するにはどうすればよいですか?