我在网站上使用Express,我刚刚与nodemailer创建了一个联系表单。现在,我希望在提交表单后将闪存消息显示在联系页面上,并重定向回联系人页面。 但是我在如何使用这个
上苦苦挣扎这是我使用Nodemailer发布表单的地方:
router.get('includes/contact', function(req, res) {
res.render('contact',{title:'Contact'});
});
//route to send the form
router.post('/contact/send', function(req, res) {
var transporter = nodeMailer.createTransport({
service : 'Gmail',
auth : {
user: xxxxxxx,
pass: xxxxxxx
}
});
var mailOptions = {
from: req.body.name + ' <' + req.body.email + '>',
to: 'xxxxxx@xxx.com',
subject:'Test subject',
text:'Test from '+ req.body.name+' Email: '+req.body.email+'Test: '+req.body.website+'Message: '+req.body.message,
html:'<p><ul><li>Test from Naam: '+req.body.name+'</li><li>Email: '+req.body.email+'</li><li>Test: '+req.body.website+'</li><li>Message: '+req.body.message+'</li></ul>'
};
transporter.sendMail(mailOptions, function (err, info) {
if(err) {
console.log(err);
res.redirect('/#contact');
} else {
console.log('Message send');
res.redirect('/#contact');
}
});
});
我的联系方式:
.wrap
.contact-block
.title Contact
form(method="post", action="contact/send")
label Name:
input(type="text", name="name", placeholder="Voer uw naam in")
label Email:
input(type="email", name="email", placeholder="Voer uw emailadres in")
label Soort website
select(type="select", name="website")
option Website
option CMS Website
option Webshop
label Bericht:
textarea(name="message", placeholder="Bericht")
button.btn-regular(type="submit") Verzenden
答案 0 :(得分:0)
在致电api以便在此api&#39; / contact / send&#39;上提交表单时。将代码更改为:
transporter.sendMail(mailOptions, function (err, info) {
if(err) {
console.log(err);
res.status(500).send({'status':1001});
} else {
console.log('Message send');
res.status(200).send({'status':1000});
}
});
这将返回json作为具有相应http状态的响应。根据您的回复状态,您可以显示隐藏Flash消息。无需重定向联系人提交表单。