Node写博客--博客内容信息扩展-作者-添加时间--阅读量

1.在表结构contents.js中增加字段

//关联字段-用户id
    user:{
        //类型
        type:mongoose.Schema.Types.ObjectId,
        //引用,引用另外一张表的模型
        ref:'User'
    },
    //添加时间
    addTime:{
      type:Date,
      default:new Date()
    },
    //阅读量
    views:{
        type:Number,
        default:0
    },

2.由于,相对于之前的页面中增加了另一个表,所以,我们在内容首页时,需要populate一个表。在admin.js内容首页中

/*
* 内容首页
* */
router.get('/content',function (req,res) {
    var page = Number(req.query.page || 1);//实际过程中需要判定page是否为数值
    //对page的取值进行一个限制
    var limit =10;
    var pages=0;
    //获取数据库中的数据记录的总条数
    Content.count().then(function (count) {
        //计算总页数
        pages=Math.ceil(count/limit);//向上取整
        //取值不能超过pages
        page=Math.min(page,pages);
        //取值不能小于1
        page=Math.max(page,1);

        var skip = (page-1)*limit;

        /*sort()
        *  1:升序
        * -1:降序
        *
        * populate()关联的就是另外一个数据表
        * */
        Content.find().sort({_id:-1}).limit(limit).skip(skip).populate(['category','user']).then(function (contents) {
            res.render('admin/content_index',{
                userInfo:req.userInfo,
                contents:contents,

                count:count,
                page:page,
                pages:pages,
                limit:limit
            })
        });
    });
});

3.在content)index.html页面中同样也改变

<table class="table table-hover table-striped">

    <tr>
        <th>ID</th>
        <th>分类名称</th>
        <th>标题</th>
        <th>作者</th>
        <th>添加时间</th>
        <th>阅读量</th>
        <th>操作</th>
    </tr>
    {% for content in contents%}
    <tr>
        <td>{{content._id.toString()}}</td>
        <td>{{content.category.name}}</td>
        <td>{{content.title}}</td>
        <td>{{content.user.username}}</td>
        <!--日期对象这样写有问题{{content.addTime}},增加一个过滤器,第二个参数填写格式,第三参数以分钟为值的偏移量-->
        <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 %}
</table>

4.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值