node.js实战记录3 文章分类管理功能、文章管理功能


文章分类管理功能

1. 新建article表

文章分类表:
在这里插入图片描述
在表中新增两条数据
在这里插入图片描述


2. 获取文章分类列表

在这里插入图片描述
在这里插入图片描述
1.初始化路由模块,初始化路由处理函数模块
router目录下新建article.js路由模块
router_handler目录下新建article.js路由处理函数模块
初始化代码如下:
在这里插入图片描述
在这里插入图片描述
app.js中还要导入并使用路由模块:
注意这个地方的前缀定的是/my/article
在这里插入图片描述
2.定义sql语句,在数据库中查找文章的列表
在这里插入图片描述
测试:
在这里插入图片描述


3. 新增文章分类

在这里插入图片描述

1.定义相关的路由和路由处理函数模块
在这里插入图片描述
在这里插入图片描述

2.验证表单数据
请求这个接口需要在请求体中带上两个参数,那么这两个参数的合法性需要在服务端进行校验
在这里插入图片描述
schema中新建article.js验证规则模块,定义namealias的验证规则,并向外共享这个验证规则对象:
在这里插入图片描述
/router/article.js路由模块中导入验证数据合法性的中间件验证规则对象,在新增文章分类的路由中声明中间件,对当前请求的数据进行验证
在这里插入图片描述
3.查询分类名称和分类别名是否被占用
在这里插入图片描述
测试:
在这里插入图片描述
在这里插入图片描述
4.定义sql语句,在数据库中更新文章的分类列表
在这里插入图片描述
测试:
在这里插入图片描述
在这里插入图片描述


4. 根据id删除文章分类

在这里插入图片描述

1.定义相关的路由和路由处理函数模块
在这里插入图片描述
在这里插入图片描述
2.验证表单数据
请求这个接口需要在url中带上id参数,那么id参数的合法性需要在服务端进行校验
在这里插入图片描述
⚠️这里不是body了,是params,这个参数是url参数,不是请求体参数
在这里插入图片描述
在这里插入图片描述
3.定义sql语句,在数据库中更新文章的分类列表
⚠️:这里删除并不是真的删除数据库中的数据,只是将数据库中的isDelete值改为1
在这里插入图片描述
测试:
在这里插入图片描述
在这里插入图片描述


5. 根据id获取文章分类

在这里插入图片描述

1.定义相关的路由和路由处理函数模块
在这里插入图片描述
在这里插入图片描述
2.验证表单数据
在这里插入图片描述
(这个跟前面删除文章分类的验证规则对象是一模一样的哈)
在这里插入图片描述
在这里插入图片描述
3.定义sql语句,在数据库中查询对应的文章分类
在这里插入图片描述


6. 根据id更新文章分类


1.定义相关的路由和路由处理函数模块
在这里插入图片描述
在这里插入图片描述
2.验证表单数据
在这里插入图片描述
这三个参数的验证规则已经是现成的咯,前面写过的,直接导出对象就行啦
在这里插入图片描述
在这里插入图片描述
3.查询分类名称和分类别名是否被占用
这里主要是在筛查本次请求提交的id以外的其他数据的namealias是否重复,比如想更新的文章分类id=3,那就会查id!=3的其他数据和当前想要更新的数据是否有重复的namealias,id=3的文章的namealias跟当前想要更新的值相同是被允许的
在这里插入图片描述
4.定义sql语句,在数据库中更新文章的分类列表
在这里插入图片描述

测试:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


文章管理功能

1. 新建article_detail表

文章表:
在这里插入图片描述

2. 发布新文章

在这里插入图片描述
在这里插入图片描述

1.初始化路由模块,初始化路由处理函数模块
router目录下新建articleDetail.js路由模块
router_handler目录下新建articleDetail.js路由处理函数模块
初始化代码如下:
在这里插入图片描述
在这里插入图片描述
app.js中导入并使用:
在这里插入图片描述
2.使用multer解析表单数据
⚠️:使用express.urlencoded()中间件无法解析multipart/form-data格式的请求体数据
当前项目,推荐使用multer来解析multipart/form-data格式的表单数据

安装multer

npm i multer

router/articleDetail.js模块中导入并配置multer
multer 会将文本类型的数据解析并挂载到 req.body 上,文件类型的数据解析并挂载到 req.file
在这里插入图片描述
3.验证表单数据
schema中新建articleDetail.js验证规则模块,定义以下参数的验证规则
在这里插入图片描述
先使用multer 解析表单数据,再使用 expressJoi 对解析的表单数据进行验证
在这里插入图片描述
router_handler/article.js模块中的处理函数中,判断用户是否提交了 coverImg
在这里插入图片描述
4.在数据库中更新文章
在这里插入图片描述
app.js 中,使用 express.static() 中间件,将 uploads 目录中的图片托管为静态资源:
在这里插入图片描述


重复的地方很多,大部分就在复制粘贴了,但是对于form-data类型数据的处理感觉自己还是懵懵的,有空再细学一下八

multer文档:
https://github.com/expressjs/multer/blob/master/doc/README-zh-cn.md

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值