我有一个网站项目。我有一个日常程序的形式,我想在另一个选项卡中显示它。
<form action="/posts/test" method="POST" enctype="multipart/form-data">
//htmlcodes
</form>
我得到的数据是:
router.post("/daily_prog" , (req,res) => {
let daily_image = req.files.daily_image
daily_image.mv(path.resolve(__dirname, "../../public/img/dailyimages", daily_image.name))
Daily.create({
...req.body,
daily_image: `/img/dailyimages/${daily_image.name}`,
},)
req.session.sessionFlash={
type: "alert alert-success",
message: "Successfully done."
}
console.log(req.body)
res.redirect("/daily")
})
使用console.log
,我可以在我的终端中看到我刚刚发布的表单中的所有数据。现在我想用下面的代码在“Daily”标签中显示它,但它没有出现。
路由器:
router.get("/daily",(req,res)=>{
Daily.find({}).lean().then(daily =>{
res.render("site/daily",{daily:daily})
})
})
和HTML页面标记,我想显示我的数据:
{{#each daily}}
<div class="col-md-6">
<div class="blog">
<div class="blog-img">
<img src="{{daily_image}}" class="img-fluid">
</div>
<div class="blog-content">
<ul class="blog-meta">
<li><i class="fas fa-users"></i><span class="writer">{{daily_content}}</span></li>
<li><i class="fas fa-clock"></i><span class="writer">{{daily_content}}</span></li>
<li><i class="fas fa-comments"></i><span class="writer"></span></li>
</ul>
<h3>{{daily_title}}</h3>
<p>{{daily_content}}</p>
</div>
</div>
</div>
{{/each}}
当我使用{{#each}}
和{{/each}}
时,这些标记之间的所有HTML在显示中都丢失了。如果我不使用它们,只是尝试在没有它们的情况下显示,那么任何动态数据也不会出现。
1条答案
按热度按时间vsikbqxv1#
您的
Daily.create
是一个异步任务,因此在您的数据保存到数据库之前,您的res.redirect("/daily")
很可能在事件循环中执行。一个简单的改进是像这样使用async/await
模式: