【发布时间】:2020-02-01 14:31:27
【问题描述】:
我正在尝试创建一个表单,该表单首先将数据发送到 Mongo DB,然后将通过 Nodemailer 的电子邮件发送该数据。以下是 2 个功能:
控制器功能
exports.createListing = (req, res) => {
// Validate request
if(!req.body.content) {
return res.status(400).send({
message: "Fields can not be empty"
});
}
const listing = new Listing({
title: req.body.title,
city: req.body.city,
street: req.body.street,
businessname: req.body.businessname,
description: req.body.description
});
listing.save()
.then(data => {
res.send(data);
}).catch(err => {
res.status(500).send({
message: err.message || "Some error occurred while creating the listing."
});
});
};
NodeMailer 功能
var smtpTransport = nodemailer.createTransport({
service: 'Gmail',
port: 465,
auth: {
user: 'YOUR_GMAIL_SERVER',
pass: 'YOUR_GMAIL_PASSWORD'
}
});
var mailOptions = {
to: data.email,
subject: 'ENTER_YOUR_SUBJECT',
html: `<p>${data.title}</p>
<p>${data.city}</p>
<p>${data.street}</p>`,
...
};
smtpTransport.sendMail(mailOptions,
(error, response) => {
if (error) {
res.send(error)
} else {
res.send('Success')
}
smtpTransport.close();
});
如何在上述创建列表功能中包含此 Nodemailer 部分,以及如何在电子邮件正文中包含提交的数据。我认为电子邮件正文中的当前 data.title 和其他选项是错误的方式。
【问题讨论】:
标签: node.js mongodb express mongoose nodemailer