sfa*_*oso 2 node.js express nodemailer
我是nodemailer在用户注册后实现的,方法如下:
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: process.env.EMAIL_USERNAME,
pass: process.env.EMAIL_PASSWORD
}
});
let mailOptions = {
from: process.env.EMAIL_USERNAME,
to: user.email,
subject: 'Verify your account',
text: 'Click here for verify your account'
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
});
Run Code Online (Sandbox Code Playgroud)
我不太喜欢这段代码,因为如果我需要在另一个中发送电子邮件module,我需要重写上面的所有内容。
由于我是新来的NodeJS,我想知道如果我能删除此代码冗余制造类似一个utility或可能的helper类。目标是导入wrapper类并调用一个简单的函数来发送电子邮件。
哪个是最好的处理方法?
小智 5
我将您的代码重构为如下所示,然后将其另存为mail.js
let transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: process.env.EMAIL_USERNAME,
pass: process.env.EMAIL_PASSWORD
}
});
let sendMail = (mailOptions)=>{
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error);
}
});
};
module.exports = sendMail;
Run Code Online (Sandbox Code Playgroud)
在你的其他模块中,比如activation.js
var mailer = require('./mail.js');
mailer({
from: process.env.EMAIL_USERNAME,
to: user.email,
subject: 'Verify your account',
text: 'Click here for verify your account'
};);
Run Code Online (Sandbox Code Playgroud)