我在对博客应用程序的索引中的数据对象进行排序时遇到此问题。 我有一个基于 Express 使用 ejs 和使用 mongoose 的 mongoDB 的博客应用程序。 我想要的是对结果进行排序,以便最新的帖子从顶部开始。此时它会在顶部显示第一篇文章。
app.js/ Mongoose 架构
blogSchema = new mongoose.Schema({
title: String,
image: String,
body: String,
created: {type: Date, default: Date.now}
});
var Blog = mongoose.model("Blog", blogSchema);
app.js/索引路由
app.get("/blogs", (req, res)=>{
Blog.find({}, (err, blogs)=>{
if(err){
console.log("Error!");
console.log(err);
} else {
res.render("index", {blogs: blogs});
}
});
});
index.ejs foreach
<% blogs.forEach(function(blog){ %>
<img alt="img" src="<%= blog.image %>">
<a href="/blogs/<%= blog._id %>"><%= blog.title %></a>
<span><%= blog.created.toDateString() %></span>
<p><%- blog.body.substring(0, 200) %>...</p>
<a href="/blogs/<%= blog._id %>">Read More</a>
<% }) %>
有人知道我该怎么做吗?
最佳答案
您可以使用Mongoose的sort()
方法:
Blog.find((err, blogs) => {
if (err) {
console.log(err);
} else {
res.render("index", { blogs: blogs });
}
}).sort({ created: 'desc' });
关于node.js 排序对象(mongoose、express、ejs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47920446/