我开发了Node Rest API。我想通过_id获取单个数据,然后使用nodemailer将该数据传递到指定的gmail地址。我无法正确应用它。这是我的产品控制器API代码:
exports.products_get_product = (req, res, next) => {
const id = req.params.productId;
Product.findById(id)
.select("senderName senderPhone senderEmail pickupAddr receiverName receiverPhone deliveryAddr note _id ")
.exec()
.then(doc => {
console.log("From database", doc);
if (doc) {
res.status(200).json({
product: doc,
request: {
type: "GET",
url: "https://courierapp-test.herokuapp.com/products"
}
});
} else {
res
.status(404)
.json({ message: "No valid entry found for provided ID" });
}
var transporter = nodemailer.createTransport({
service: 'gmail',
secure: false,
auth: {
user: '****@gmail.com',
pass: '****'
}
});
var mailOptions = {
from: '',
to: '',
subject: doc.note,
html: '<p>'+ doc.senderName + '</p>'
'<p>'+ doc.senderPhone + '</p>' +
'<p>'+ doc.senderEmail + '</p>' +
};
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(JSON.stringify(error));
} else {
console.log('Email sent: ' + JSON.stringify(info.res));
}
});
})
.catch(err => {
console.log(err);
res.status(500).json({ error: err });
});
};
我已将我的mongoDb登录凭据包含在auth中。当我尝试在本地运行这些命令时,出现控制台错误:
{“代码”:“ ECONNECTION”,“命令”:“ CONN”}
在将它们部署到heroku之后,我的应用程序崩溃了,因此无法在服务器上对其进行检查。请提供有效的解决方案。
答案 0 :(得分:0)
我相信nodemailer至少要求“收件人”包含一个有效的电子邮件地址。