这里输入的头像的格式base64
定义路由和处理函数
路由模块:
//挂载具体路由4
//更新用户头像的路由
Router.post('/update/avatar',userInfo_hander.updateAvatar )
//导入express模块
const express=require('express')
//创建路由对象
const Router=express.Router()
//导入处理函数的模块
const userInfo_hander=require('../router_handler/userinfo')
//挂载具体路由1
//监听客户端获取用户基本信息
Router.get('/userinfo',userInfo_hander.getUserInfo)
//1、导入验证表单数据的中间件
var expressJoi = require('@escook/express-joi')
//2、导入需要验证的规则对象
const {update_userinfo_schema}=require('../schema/user')//存放是是规则_body里面的对象
//挂载具体路由2
//更新用户的基本信息
Router.post('/userinfo',expressJoi(update_userinfo_schema), userInfo_hander.updateUserInfo)
//挂载具体路由3
//更新密码的路由
//2、导入需要验证的规则对象
const {update_password_schema}=require('../schema/user')//存放是是规则_body里面的对象
Router.post('/updatepwd', expressJoi(update_password_schema),userInfo_hander.updatePassword)
//挂载具体路由4
//更新用户头像的路由
Router.post('/update/avatar',userInfo_hander.updateAvatar )
//向外导出路由
module.exports=Router//之前={对象 对象里面是属性 可以做一个省略}
路由处理函数模块
//定义用户更新头像的处理函数
exports.updateAvatar=(req,res)=>{//同样也是有权限的接口
res.send('ok')
}
验证表单数据(头像的验证规则-base64格式的头像数据-joi)
joi方法 dataUri可以验证头像数据是否是base64格式的字符串——
//验证规则对象——重置头像
//定义头像的验证规则-必须是base64
const avatar = joi.string().dataUri().required()
module.exports.update_avatar_schema ={//向外共享
body:{//校验req.body中的数据
avatar,
}
}
//挂载具体路由4
//更新用户头像的路由
//2、导入需要验证的规则对象
const {update_avatar_schema}=require('../schema/user')//存放是是规则_body里面的对象
Router.post('/update/avatar',expressJoi(update_avatar_schema),userInfo_hander.updateAvatar )
使用base64输入base64格式:data:image/png;base64,VE9PTUFOWVNFQ1JFVFM=
实现更新用户头像的功能(使用SQL语句)
//定义用户更新头像的处理函数
exports.updateAvatar=(req,res)=>{//同样也是有权限的接口
const sqlStr=`update ev_users set user_pic=? where id = ?`
db.query(sqlStr,[req.body.avatar,req.auth.id],(err,results)=>{
//执行SQL语句失败
if(err) return res.cc(err)
//执行SQL语句成功,但判断影响的行数是否为1
if(results.affectedRows!==1) return res.cc('更换头像成功')
//更换头像成功
res.cc('更换头像成功',0)
})
}