• 一个简单的blog系统(十) 增加pv统计和留言统计


    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统计和留言统计。

    如下代码:

  • 相关阅读:
    转 Java中wait和sleep方法的区别
    linux 中常用安装配置
    php 图片压缩
    利用 jQuery-photoClip插件 实现移动端裁剪功能并以Blob对象上传
    phpStudy for Linux (lnmp+lamp一键安装包)
    js图片实现延迟加载
    杂项
    正则表达式
    sublime text 3 中 SFTP插件 的 配置
    如何解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题
  • 原文地址:https://www.cnblogs.com/yuity/p/5304137.html
Copyright © 2020-2023  润新知