一、定义路由和处理函数
var express = require("express"); var router = express.Router(); // 引入封装的获取验证码的方法 var userInfo_function = require("../controllers/userInfo"); // 1.导入验证数据的中间件 const expressJoi = require("@escook/express-joi"); // 2.导入需要的验证规则对象 const { update_userinfo_schema } = require("../schema/user"); // 更新用户信息的接口 router.post("/userinfo", expressJoi(update_userinfo_schema),userInfo_function.updateUserInfo); module.exports = router;
二、验证表单数据
schema/user.js
// 定义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, }, };
三、实现更新用户基本信息的功能
// 导入数据库模块 var db = require("../utils/db"); // 更新用户基本信息的处理函数 exports.updateUserInfo = (req, res) => { // 定义执行sql语句 const sql = "update ev_users set ? where id=?"; db.query(sql, [req.body, req.body.id], (err, results) => { // 执行sql语句失败 if (err) return res.cc(err); // 执行sql语句成功,但影响行数不为1 if (results.affectedRows !== 1) return res.cc("修改用户基本信息失败"); // 修改用户信息成功 return res.cc("修改用户基本信息成功", 0); }); };