首页的展示
-
与之前的方法一样,建立
home
文件夹,然后在home
文件夹下建立index.js article.js
文件,在home.js
文件中使用require('./home/index.js');
方式导入; -
骨架抽离也是一样的;在home下面建立common文件夹放一些骨架文件.art
-
查询文章信息,也用到了关联查询populate;在关联查询的时候如果同时使用lean()和exec()会报错说lean()不是一个函数;
-
展示文章显示页面的时候使用index去判断添加fl 还是fr类名
-
调整格式,时间用
dateFormat
内容用$value.content.replace();
在使art文件识别为html文件高亮的时候,总是会出现语法错误,因为模板语法在html文件中有的语法是错误的,所以我目前把art没有识别为html,就是没有高亮这个功能了
{{@$value.content.replace(/<[^>]+>/g,'').substr(0,150)+'...'}}
以上代码,replace(/<[^>]+>/g,'')
表示用第二个参数去替换第一个参数,第一个参数表示<开始>结束,中间除了>其他的字符都可以;g表示全局应用;substr(0,150)
表示截取字符从0到150
列表页码显示
循坏display数组,
<a href="/home/?page={{$value}}" class="active">{{$value}}</a>
其中的href
参数是为了获取链接页码的req.query.page;
文章评论
-
创建评论集合
增加数据库用户之后登录compass步骤 -
判断用户是否登录,如果用户登录,再允许用户提交评论表单;
去数据库中随便找一个user用户;
登录拦截功能: -
在服务器端创建文章评论功能对应的路由;
-
在路由请求处理函数中接收客户端传递过来的评论信息;
通过req.body就可以获得提交的评论
得到的结果
-
将评论信息存储在评论集合中
指定name
属性,然后用req.body
获取
-
将页面重定向回文章详情页;
res.redirect();
- 在文章详情页面路由中获取文章评论信息并展示在页面中;
设置cookie过期时间
// 设置cookie过期时间
cookie: {
maxAge: 24 * 60 * 60 * 1000
}