前言
博客内容的管理,与博客文章分类的管理基本上类似。都是分别有几个路由对应相应的功能,GET /admin/content 对应文章内容的首页,GET /admin/content/add 对应内容的添加,GET /admin/content/edit 是内容的修改编辑,GET /admin/content/delete 则为博客内容的删除路由。
博客内容在数据库中的存储结构与模型
文章的内容的数据结构主要有文章的标题,分类,作者,添加时间,阅读量,简介,正文部分。其中分类和作者是引用其对应的集合而来,添加时间则是通过时间格式化模块 moment 格式化后转化为字符串。
在 /schemas 文件夹中新建一个 contents.js 文件,用来存放文档结构,代码如下:
1 | // 引入mongoose模块 |
然后在 /models 中添加内容的模型 content.js
1 | // 引入相关模块 |
内容相关的静态模板
在视图文件夹 /views 中的 /admin/ 新建一个 /content 文件夹用来存放文章内容相关的视图文件。
管理首页模板
在 /views/admin/content 中新建一个 index.ejs 作为内容管理的首页,代码如下:
1 | <!-- 引入页头模板 --> |
内容添加页面模板
接着再新建一个内容添加页面 /views/admin/content/add.ejs 内容如下:
1 | <!-- 引入页头模板 --> |
内容修改界面模板
最后一个界面则是博客内容的修改界面 /views/content/edit.ejs :
1 | <!-- 引入页头模板 --> |
博客内容管理的相关内容处理
在处理完博客内容管理的先关静态模板后,就进行相关路由的处理。
博客内容首页的路由
在 admin.js 中,添加如下代码:
1 | // 引入内容的模型,用来操作数据库 |
博客内容添加界面保存路由
在 admin.js 中添加如下代码,实现对 /admin/content/add 路由的 GEt 和 POST 处理
1 | // 博客内容的添加界面 |
内容的修改界面及保存修改的路由
内容的修改是由前端通过 GET 方式向后端传递需要修改的内容的 ID ,后端再从数据库中查询出相应数据进行更新,并将处理结果返回给前端。
在 admin.js 中添加以下代码:
1 | // 内容修改的界面 |
内容删除的处理
删除同样是前端通过 GET 方式传递需要删除的内容的 ID 过来,然后服务器再从数据库根据 ID 删除数据。
在 admin.js 中添加如下代码,处理删除内容:
1 | // 内容的删除 |
内容管理的测试
最后进行内容管理的相关测试: