NodeJS博客实战20_博客添加阅读量,作者和创建时间扩展

标签: NodeJS博客
4人阅读 评论(0) 收藏 举报
分类:

源码地址:https://github.com/RidingACodeToStray/Nodejs_blog

1.主要功能

1)添加创建者字段

2)添加创建时间

3)添加阅读量字段

2.实现方法

1)在创建content表结构中关联User表的字段,在读取内容列表时使用populate方法也把对应的创建者信息读取到

2)在content表结构中添加时间字段,默认时间函数new Date(),使用模板引擎的过滤器date()方法将从内容中读取的时间字段转化为东八区的格式化后的时间

3.相关代码

1)content表结构

schemas/content.js

//定义数据库表存储结构

//引入moogoose模块操作数据库
var mongoose = require('mongoose');

//定义用户表结构(字段和类型),并暴露出去
module.exports = new mongoose.Schema({
	//关联字段 - 分类的id
	category:{
		type:mongoose.Schema.Types.ObjectId,
		//引用
		ref:'Category'
	},

	title:String,
	//关联字段 - 用户id
	user:{
		type:mongoose.Schema.Types.ObjectId,
		//引用
		ref:'User'
	},
	//点击量
	views: {
		type:Number,
		default:0
	},
	addTime:{
		type:Date,
		default:new Date()
	},
	//简介
	desciption:{
		type:String,
		default: ''
	},
	//内容
	content: {
		type:String,
		default:''
	}
});

2)读取内容关联user表

routers/admin.js

//内容首页
router.get('/content',function(req,res){
	//limit()限制获取的用户条数
	//skip()忽略数据的查询
	var page = Number(req.query.page) || 1;
	var limit = 2;
	var pages = 0;
	Content.count().then(function(count){
		//计算总页数向上取整
		pages = Math.ceil(count / limit);
		//page取值不能超过pages,去总页数和page中的最小值
		page = Math.min(page,pages);
		//page取值不能小于1
		page = Math.max(page,1);
		var skip = (page -1 ) * limit;
		//从数据中读取所有的用户数据
		//sort排序1表示升序-1表示降序
		//populate关联category的信息
		Content.find().sort({_id:-1}).limit(limit).skip(skip).populate(['category','user']).then(function(contents){
			// console.log(contents);
			res.render('admin/content_index',{
				userInfo:req.userInfo,
				contents:contents,
				page:page,
				count:count,
				pages:pages,
				limit:limit
			});
		});	
	})
})

3)模板渲染

views/admin/content_index.html

{% extends 'layout.html' %}

{% block main %}
	<div class="a-userNav">
		<span><a href="/">管理首页</a></span>
		<span> / </span>
		<span>分类列表</span>
	</div>
	<div style="padding-left: 50px;text-align: right;margin-right: 10px;">
		<a href="/admin/content/add">添加内容</a>
		</div>
	<table class="a-userTable">
	<thead>
		<tr>
			<th>ID</th>
			<th>内容分类</th>
			<th>内容标题</th>
			<th>作者</th>
			<th>创建时间</th>
			<th>阅读量</th>
			<th>操作</th>
		</tr>
	</thead>
	<tbody>
		{% for content in contents %}
		<tr>
			<td>{{content._id.toString()}}</td>
			<td>{{content.category.name}}</td>
			<td>{{content.title}}</td>
			<td>{{content.user.username}}</td>
			<td>{{content.addTime|date('Y-m-d H:i:s',-8*60)}}</td>
			<td>{{content.views}}</td>
			<td>
					<a href="/admin/content/edit?id={{content._id.toString()}}">修改</a>
					<a href="/admin/content/delete?id={{content._id.toString()}}">删除</a>
			</td>
		</tr>
		{% endfor %}
	</tbody>
	</table>
		<div class="a-page">
		<span><a href="/admin/content?page={{page-1}}">上一页</a></span>
		<span class="a-pageInfo">
			当前第{{page}}页,每页{{limit}}条,共{{pages}}页{{count}}条数据
		</span>
		<span><a href="/admin/content?page={{page+1}}">下一页</a></span>
	</div>
{% endblock %}

查看评论

Python 刷高博客阅读量

【事情起因】     前段时间我开始写博客,后来发现博客文章的阅读量实际上是文章对应网页的被打开次数。于是我有了个想法:可不可以写一个程序,让她不断访问某篇文章的页面,以此刷高博客的阅读量呢?要回答这...
  • Qidi_Huang
  • Qidi_Huang
  • 2016-06-13 16:53:57
  • 2836

nodejs实战express笔记之实现用户和文章页面

概念 用户页面:单击某个用户链接名,跳转到:域名/u/用户,并列出该用户的所有文章 文章页面:同理,某个文章的页面当访问这些页面的时候,会从路径中提取用户名,时间,标题等查询数据库并返回查询的文章信息...
  • doujiao_pengpeng
  • doujiao_pengpeng
  • 2015-10-21 17:25:29
  • 949

恭喜自己博客阅读量突破10000

感谢各位朋友的支持,希望我写的文章可以帮助到大家 3月7日  10点12 突破5000 5月31日 9点00 突破10000 9月22日 13点50 突破 20000 2018年1月9...
  • qq_32368129
  • qq_32368129
  • 2017-03-07 10:12:02
  • 146

提高文章阅读量的最新技巧

提高文章阅读量的最新技巧 1.投放文章的网站要求。做自媒体的都应该知道网站都是有权重的,也就是权重越高的那么你投稿的文章被搜索引擎收录的也就越快!   2.文章的原创性,关于XX的文章是不是你...
  • seojq
  • seojq
  • 2017-06-14 09:27:53
  • 413

在个人博客中添加文章点击次数

在个人博客中添加文章点击次数0. 背景介绍我的博客是基于 jekyll + Github pages 。 采用 LeanCloud 作为博客文章访问量的服务器存储。感谢LeanCloud的免费服务。...
  • u013553529
  • u013553529
  • 2017-03-18 23:26:18
  • 1550

文章阅读量

最近在自学Blender,在博里记了流水账。出乎意料,前两篇很有些阅读量。 因为贴图太麻烦,第三篇换成在WORD中编辑,然后转成图片贴出。阅读量一下低了下去。 一种可能是流水账只对我自己有用,网友...
  • CodeArhat
  • CodeArhat
  • 2011-10-30 21:52:25
  • 496

妈妈再也不用担心我的博客访问量了(一个可以刷博客访问量的小程序java)

前言:相信很多写博客的朋友,会苦恼于博客访问量上不去的问题。博主最近工作比较新手动谢了个小程序,一个可以刷访问量的程序。当然主要是针对csdn博客。有了他 就再也不必担心博客访问量上不去的问题了。注:...
  • u013233097
  • u013233097
  • 2017-12-13 18:28:20
  • 1411

为NexT主题添加文章阅读量统计功能

网上找了一大堆博客,发现添加方式很繁琐。统计的方式有LeanCloud和不蒜子。本文介绍的是不蒜子统计方法。操作:打开文件: themes/next/_config.yml# Show PV/UV ...
  • Time888
  • Time888
  • 2017-07-03 16:05:57
  • 212051

如何刷博客的访问量

当然,很多童鞋都喜欢刷自己的博客访问量,这样可以获得神奇的C币,可以兑换N and N的好东西。今天,博主普及大家的知识,当然,不可以学习以后乱搞,不然就是不正当的行为了。其实刷博客的访问量很简单,只...
  • cnyali_ljf
  • cnyali_ljf
  • 2016-07-14 14:28:43
  • 2790
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 20万+
    积分: 4612
    排名: 7970
    博客专栏
    最新评论