我正在使用JavaScript,Express和ejs模板制作博客。每个博客帖子都可以发表评论,我希望每个评论都带有发布日期。注释的内容是从.ejs文件的输入字段中提取的值。现在我正在使用moment.js,但是日期/时间一直在更新。我希望它仅显示创建评论的日期/时间。
这是我app.js文件中的一些代码:
moment = require('moment');
app.locals.moment = moment
这是我创建评论的路线:
app.post("/comments/:id", (req, res) => {
Blog.findById(req.params.id, (err, blog) => {
if (err) {
console.log("Something went wrong:", err);
} else {
console.log("BLOG", blog);
let newComment = { comment: req.body.comment };
Comment.create(newComment.comment, (err, comment) => {
if (err) {
console.log("Something went wrong:", err);
} else {
console.log("Success! Comment Posted", comment);
comment.save();
blog.comments.push(comment);
blog.save();
res.redirect("/blog/" + blog._id);
}
});
}
});
});
并且来自我的.ejs文件:
<em><%= moment(Date()).format(shortDateFormat) %></em>
我认为这足以理解要点。这可能是一个非常简单的修复程序,但是我仍然是一个非常环保的编码器!
我假设您正在使用像Mongo这样的noSQL数据库?我只是将日期放在您的博客文章的架构中,如下所示:
created_date: {
type: Date,
default: Date.now
}
然后您可以从数据库中调用它,并将其传递给您的ejs文件。