Node编写更新用户信息接口

目录

前言

定义路由和处理函数

验证表单数据

实现更新用户基本信息的功能


前言

继前面几篇文章,本文介绍如何编写更新用户信息接口

定义路由和处理函数

路由

// 更新用户信息接口
router.post('/userinfo', userinfo_handler.updateUserinfo)

处理函数

// 导出更新用户信息处理函数
exports.updateUserinfo = (req,res)=>{
    res.send('更新成功')
}

使用postman模拟发起post请求

Node编写更新用户信息接口_第1张图片

验证表单数据

定义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模拟请求验证

Node编写更新用户信息接口_第2张图片

实现更新用户基本信息的功能

定义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模拟请求

Node编写更新用户信息接口_第3张图片

从数据库中查看

Node编写更新用户信息接口_第4张图片

修改成功

当修改不存在用户时

Node编写更新用户信息接口_第5张图片

返回修改失败

Node编写更新用户信息接口_第6张图片

你可能感兴趣的:(1024程序员节,node.js,前端)