因此,我正在建立一个实质上是博客的网站。我有从多个页面链接到数据库的帖子路线。
问:我怎样才能猜到多个帖子路线可以在一条路径上工作/如何对1个帖子路线进行编程以做到“要么或”,要么?
希望我的问题很清楚
谢谢
问题是我现在在所有页面上显示的页脚中有一个“订阅电子邮件”表单。我可以使发布路线正常工作,但是它会取消相同路径上的任何其他发布路线。 例如: 1.我在/ blog上有新博客帖子的发布路线 2.如果我在页脚的表单中输入电子邮件地址并提交当前的发布路线,将可以正常工作(向我发送电子邮件,表明已添加了新订阅者),但是如果我现在尝试尝试添加新的博客文章,只会提交页脚中的空白表格的发帖请求,并向我发送一封电子邮件,其中包含“ undefined”(obv)。
//CREATE - add new blogpost to DB
router.post("/blog", function(req, res){
var name = req.body.name;
var image = req.body.image;
var desc = req.body.description;
var author = {
id: req.user._id,
username: req.user.username
}
var email = req.body.email;
geocoder.geocode(req.body.location, function (err, data) {
if (err || !data.length) {
req.flash('error', 'Invalid Address');
return res.redirect('back');
}
var lat = data[0].latitude;
var lng = data[0].longitude;
var location = data[0].formattedAddress;
var newPost = {name: name, image: image, caption: caption, description: desc, author:author, location: location, lat: lat, lng: lng};
// Create a new Post and save to DB
Post.create(newPost, function(err, newlyCreated){
if(err){
console.log(err);
} else {
//redirect back to posts page
console.log(newlyCreated);
res.redirect("/blog");
}
});
});
});
________________________________
router.post("/blog", (req,res) => {
const output = `
<p> You have a new subscriber </p>
<h3> Contact Details </h3>
<ul>
<li> Email: ${req.body.email} </li>
</ul>
<h3> Message </h3>
<p> Someone Subscribed to your email list </p>
`;
let mailerConfig = {
host: "smtp.office365.com",
secureConnection: true,
port: 587,
auth: {
user: "####",
pass: "###"
}
};
let transporter = nodemailer.createTransport(mailerConfig);
let mailOptions = {
from: mailerConfig.auth.user,
to: '@',
subject: 'Someone subscribed to your Blog!',
html: output
};
transporter.sendMail(mailOptions, function (error) {
if (error) {
console.log('error:', error);
} else {
console.log('message sent');
req.flash("success","Message Sent!")
res.redirect("back");
}
});
});
我如何才能使这两者一起工作,所以当某人输入其电子邮件地址并提交表单(在网站的任何页面上)时,它将提交数据而不会干扰当前页面上的任何其他发布途径。