目录
前言
定义路由和处理函数
验证表单数据
实现更新用户基本信息的功能
前言
继前面几篇文章,本文介绍如何编写更新用户信息接口
定义路由和处理函数
路由
// 更新用户信息接口
router.post('/userinfo', userinfo_handler.updateUserinfo)处理函数
// 导出更新用户信息处理函数
exports.updateUserinfo = (req,res)=>{
    res.send('更新成功')
}使用postman模拟发起post请求

验证表单数据
定义id,nickname,email验证规则
// 定义 id, nickname, emial 的验证规则
const id = joi.number().integer().min(1).required()
const nickname = joi.string().required()
const email = joi.string().email().required()向外导出更新的用户信息
// 验证规则对象 - 更新用户基本信息
exports.update_userinfo_schema = {
  body: {
    id,
    nickname,
    email,
  },
}导入验证数据合法性的中间件
// 导入验证数据合法性的中间件
const expressJoi = require('@escook/express-joi')导入需要验证的对象
// 导入需要的验证规则对象
const { update_userinfo_schema } = require('../schema/user')在更新用户信息的接口中,添加验证
// 更新用户信息接口
router.post('/userinfo',expressJoi(update_userinfo_schema), userinfo_handler.updateUserinfo)使用postman模拟请求验证

实现更新用户基本信息的功能
定义sql语句
const sql = 'update ev_users set ? where id=?'调用 db.query() 执行 SQL 语句
db.query(sql,[req.body,req.body.id],(err,results)=>{
        // 判断sql语句是否执行成功
        if(err) return res.send({status:1,message:err.message})
        // 判断影响行数是否为1
        if(results.affectedRows!==1) return res.send({status:1,message:'用户信息更新失败'})
        res.send({
            status:0,
            message:'用户更新成功'
        })
    })更新用户完整处理函数
// 导出更新用户信息处理函数
exports.updateUserinfo = (req,res)=>{
    const sql = 'update ev_users set ? where id=?'
    db.query(sql,[req.body,req.body.id],(err,results)=>{
        // 判断sql语句是否执行成功
        if(err) return res.send({status:1,message:err.message})
        // 判断影响行数是否为1
        if(results.affectedRows!==1) return res.send({status:1,message:'用户信息更新失败'})
        res.send({
            status:0,
            message:'用户更新成功'
        })
    })
}使用postman模拟请求

从数据库中查看

修改成功
当修改不存在用户时

返回修改失败




















