当前位置: 首页 > news >正文

Node编写更新用户信息接口

目录

前言

定义路由和处理函数

验证表单数据

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


前言

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

定义路由和处理函数

路由

// 更新用户信息接口
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})// 判断影响行数是否为1if(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})// 判断影响行数是否为1if(results.affectedRows!==1) return res.send({status:1,message:'用户信息更新失败'})res.send({status:0,message:'用户更新成功'})})
}

使用postman模拟请求

从数据库中查看

修改成功

当修改不存在用户时

返回修改失败

相关文章:

Node编写更新用户信息接口

目录 前言 定义路由和处理函数 验证表单数据 实现更新用户基本信息的功能 前言 继前面几篇文章,本文介绍如何编写更新用户信息接口 定义路由和处理函数 路由 // 更新用户信息接口 router.post(/userinfo, userinfo_handler.updateUserinfo) 处理函数 // 导…...

Delphi解决 openssl DLL 与 Indy 的SSL/TLS 连接问题

昨天,突然间,我的一个 Delphi 程序无法连接到互联网上的各种WMS服务器。我收到以下错误消息: 使用 SSL 连接时出错。错误 1409442E:SSL 例程:ssl3_read_bytes:tlsv1 警报协议版本 由于我使用的是最新版本…...

单片机仿真设计打包项目

小伙伴们在仿真设计时会遇到各种各样的问题,网上的资料可能不全或者很贵。 这篇也不单纯为了打广告,主要是希望实实在在帮到学单片机的同学,大家不要一有问题就各种找dai zuo,做的好不好是一回事儿,关键是它费&#x…...

Java练习题-输出二维数组对角线元素和

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:Java练习题 💬个人格言:不断的翻越一座又…...

Python调用ctype的动态库时出现的问题记录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、动态库调用问题1.问题发现2.解决问题 总结 前言 提示:这里可以添加本文要记录的大概内容: 之前用公司算法同事写的c算法编译成的d…...

面试算法38:每日温度

题目 输入一个数组,它的每个数字是某天的温度。请计算每天需要等几天才会出现更高的温度。例如,如果输入数组[35,31,33,36,34],那么输出为[3,1,1,0&#xff…...

流程控制语句中的顺序结构、分支结构和循环结构以及示例和详细代码解释为什么这样写(1)

在流程控制语句中,我们通常可以将其分为三种基本结构:顺序结构、分支结构和循环结构。 1. 顺序结构:顺序结构是最简单的流程控制结构,代码按照编写的顺序依次执行,没有条件或循环的干扰。下面是一个顺序结构的示例代码…...

MFC Windows 程序设计[334]之自定义编辑框(附源码)

MFC Windows 程序设计[334]之自定义编辑框 程序之美前言主体运行效果核心代码逻辑分析结束语程序之美 前言 MFC是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Wind…...

MOS管特性及其几种常用驱动电路详解,电子工程师手把手教你

在电子工程中,MOS管(金属氧化物半导体场效应管)是一种非常重要的半导体元件。 在这篇文章中,我们将深入探讨MOS管的特性,以及几种常用的驱动电路的工作原理和设计方法。无论你是初学者还是经验丰富的电子工程师&#…...

C#,数值计算——分类与推理Phylo_wpgma的计算方法与源程序

1 文本格式 using System; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Phylo_wpgma : Phylagglom { public override void premin(double[,] d, int[] nextp) { } public override double dminfn(double…...

Spring MVC 常用的注解

Controller:用于将一个类标记为 Spring MVC 控制器,处理 HTTP 请求和生成 HTTP 响应。RestController:类似于 Controller,但返回的数据会被自动转换为 JSON 或 XML 格式,通常用于构建 RESTful API。等于Controller Re…...

winodos下使用VS2022编译eclipse-paho.mqtt.c并演示简单使用的 demo

本文演示C语言如何使用eclipse-paho.mqtt.c库,包含自行编译库的步骤或者下载编译好的文件。 1.下载paho.mqtt.c库源码(zip 文件) 到官网选择C版本的paho源码进行下载 Eclipse Paho | The Eclipse Foundation 或者到下述连接下载 Releases ec…...

【Java 进阶篇】使用 Java 和 Jsoup 进行 XML 处理

XML(可扩展标记语言)是一种常用的数据交换格式,它被广泛用于在不同系统之间传递和存储数据。Java作为一种强大的编程语言,提供了多种方式来处理XML数据。其中,Jsoup 是一个流行的Java库,用于解析和操作XML文…...

QT图形视图框架绘制曲线图和Smith图

QT图形视图框架绘制曲线图和Smith图 QGraphicsView是Qt框架中的一个图形视图部件,用于显示和处理2D图形元素。它提供了强大的工具来创建交互式和自定义的图形应用程序。在绘制折线图和Smith图时,使用QGraphicsView有以下一些优点: 交互性&am…...

0032【Edabit ★☆☆☆☆☆】【每秒帧数】Frames Per Second

0032【Edabit ★☆☆☆☆☆】【每秒帧数】Frames Per Second algorithms language_fundamentals math numbers Instructions Create a function that returns the number of frames shown in a given number of minutes for a certain FPS. Examples frames(1, 1) // 60 fra…...

【LeetCode】1423 可获得的最大点数(中等题)

【题目描述】 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数…...

2024年天津中德应用技术大学专升本物流管理专业课考试大纲

天津中德应用技术大学物流管理专业(高职升本科)2024年专业基础考试大纲 一、试卷类型 物流管理专业升本专业课考试共1套试卷,总分200分,考试时间为2小时。内容包含仓储与配送管理40%、物流基础30%,运输管理30%&#…...

目标检测YOLO实战应用案例100讲-船舶目标检测及编队识别(续)

目录 3.2.3 分类与回归 3.2.4 网络预设置与训练策略 3.3 实验与分析 3.3.1 实验环境 3.3.2...

【MySQL索引与优化篇】索引的数据结构

文章目录 1. 概述2. 常见索引结构2.1 聚簇索引2.2 二级索引(辅助索引、非聚簇索引)2.3 联合索引 3. InnoDB的B树索引的注意事项3.1 根页面位置万年不动3.2 内节点中目录项记录的唯一性 4. MyISAM中的索引方案5. InnoDB和MyISAM对比6. 小结7. 补充:MySQL数据结构的合…...

Qt Widget 删除之后还会显示 问题

目录 问题描述:Qt QWidget 删除之后还会显示 解决方案: Part1: 使用 deleteLater Part2: 使用 setParent(nullptr) 父控件为空 还有一种不常用的方法 隐藏: 问题描述:Qt QWidget 删除之后还会显示 Qt 无论使用 while (Layo…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

接口测试中缓存处理策略

在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

React Native 导航系统实战(React Navigation)

导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...

线程同步:确保多线程程序的安全与高效!

全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

SpringCloudGateway 自定义局部过滤器

场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...