1. 现在我们来给每篇文章增加pv统计和留言统计功能。
假设:在主页、用户也和文章页均可以显示pv统计和留言统计
首先,打开post.js,修改代码如下所示:
//要存入数据库的文档 var post = { name: this.name, time: time, title: this.title, post: this.post, tags: this.tags, comments: [], pv: 0 };
然后,修改Post.getOne()为如下所示:
//获取一篇文章,根据用户名,发表日期以及文章名精确获取一篇文章 Post.getOne = function(name, day, title, callback) { //打开数据库 mongodb.open(function (err, db) { if (err) { return callback(err); } //读取 posts 集合 db.collection(‘posts‘, function (err, collection) { if (err) { mongodb.close(); return callback(err); } //根据用户名、发表日期及文章名进行查询 collection.findOne({ "name": name, "time.day": day, "title": title }, function (err, doc) { if (err) { mongodb.close(); return callback(err); } if (doc) { //每访问 1 次,pv 值增加 1 collection.update({ "name": name, "time.day": day, "title": title }, { $inc: {"pv": 1} }, function (err) { mongodb.close(); if (err) { return callback(err); } }); //解析 markdown 为 html doc.post = markdown.toHTML(doc.post); doc.comments.forEach(function (comment) { comment.content = markdown.toHTML(comment.content); }); callback(null, doc);//返回查询的一篇文章 } }); }); }); };
最后,修改index.ejs、user.ejs、article.ejs,在<p><%- post.post %>后面修改
<span class=‘glyphicon glyphicon-comment‘ style="padding:0 10px;">评论:<%= post.comments.length %></span> <span class="glyphicon glyphicon-share-alt">阅读:<%= post.pv %></span>
至此,我们就给博客增加了pv统计和留言统计。
如下代码:
时间: 2024-10-19 03:31:49