我正在構建一個Angular 4和Node應用程序。一旦任何用戶在前端註冊,我將其數據存儲在數據庫中,然後想要使用nodemailer
軟件包向他們發送成功的註冊電子郵件。如何使用nodemailer爲NodeJS應用程序在後臺發送電子郵件?
這裏的節點js代碼:
router.post('/', function(req, res, next) {
SOME_DATABASE_FUNC() {
if(FAILED_CASE) {
return res.status(500).json({
title: 'An error occurred',
status: 500,
error: error
});
var mailOptions {...}
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log(error);
return res.status(500).json({
title: 'An error occurred',
status: 500,
error: error
});
}
console.log('Message', info.messageId, info.response);
return res.status(200).json({
message: 'Emailed successfully',
details: info
});
});
}
}
});
此代碼的工作完美,但它需要幾秒鐘發送電子郵件,用戶必須等待,以顯示成功響應這似乎並不以適應良好。相反,我想在後臺發送它可能是一個異步功能或像一個cron工作。
但我不知道如何轉換代碼發送它作爲一項工作,而不是發送和等待數據庫事務後。請幫我解決這個問題。