通过Node + SSE 做了一个构建日志推送

news2024/9/20 20:32:32

1.注册页是什么

当我们使用一个从未使用过的网站时,想要注册账号,点击注册账号时看到的网页就是注册页> 注册页例子如下:

  • 我们看到以下的注册页中,有两大类信息:
  • 第一大类是用户信息类,> 包括用户名,密码和email,他们都有自己的 取值规则 ,例如用户名显示不得小于3个字符* > 第二大类是验证码类,一般有两种,> 一种是短信或邮箱验证,这是为了绑定手机号或邮箱,> 还有一种就下图中的真人验证,为了避免机器人恶意访问信息量过大,通过验证计算题或者识别字母的方式来确定是真人访问

2.为什么需要注册页

目的:

  • 注册页的目的是让用户注册账号
  • 用户通过账号密码来登录网站
  • 网站记录用户的账户密码,建立一个记录每一个用户信息的数据库

数据校验

  • 用户名和密码都有一定的命名和设定规则
  • 为了避免不符合规则的命名和密码发送到服务器,造成服务器压力过大
  • 我们需要在前端页面对数据进行初筛,符合规则要求的才会被发送到服务器
  • 服务器再进行用户名是否重复的校验

3.注册页如何实现

本次所使用的技术栈:vue2.0,axios,element-ui,vuex,vue-router> 需要实现的界面如下:

3.1分析业务需求

  • 1.获取数据: v-model双向绑定三个数据,分别是username.password,repassword
  • 2.校验数据(1)在data中添加校验规则(2)在模板中配置规则(3)处理最终结果
  • 3.发送数据: 通过axios发送数据
  • 4.处理数据: 判断axios返回的code值,来处理数据

初始html模板如下

小贴士:

  • input框的前置icon图标通过prefix-icon="el-icon-user"实现
  • 如果想要实现点击小眼睛实现密码显示和保密.可以在el-input框便签加上show-password实现
<!-- 注册的表单区域 --><el-form><!-- 用户名 --><el-form-item><el-input placeholder="请输入用户名" prefix-icon="el-icon-user"></el-input></el-form-item><!-- 密码 --><el-form-item><el-input type="password" prefix-icon="el-icon-lock" placeholder="请输入密码"></el-input></el-form-item><!-- 确认密码 --><el-form-item><el-input type="password" prefix-icon="el-icon-lock" placeholder="请再次确认密码"></el-input></el-form-item><el-form-item><el-button type="primary" class="btn-reg">注册</el-button><el-link type="info" @click="$router.push('/login')">去登录</el-link></el-form-item></el-form> 

3.2获取数据 v-model双向绑定

首先在data中定义表单数据对象,包含用户名,密码和第二次密码

 data() {return {form: {username: "",password: "",repassword: "",},} 

然后在表单的三个input框中使用v-model绑定上面的三个数据

 <!-- 注册的表单区域 --><el-form ><el-form-item ><el-inputplaceholder="请输入用户名"prefix-icon="el-icon-user"v-model="form.username"></el-input></el-form-item><el-form-item><el-inputplaceholder="请输入密码"prefix-icon="el-icon-lock"v-model="form.password"show-password></el-input></el-form-item><el-form-item ><el-inputplaceholder="请输入再次确认密码"prefix-icon="el-icon-lock"v-model="form.repassword"show-password></el-input></el-form-item></el-form> 

3.3校验数据

首先在data中定义数据校验规则

formRules: {username: [{ required: true, message: "用户名不能为空", trigger: "blur" },{pattern: /^[a-zA-Z0-9]{1,10}$/,message: "用户名必须是1-10位的字母数字",trigger: "blur",},],password: [{ required: true, message: "密码不能为空", trigger: "blur" },{pattern: /^\S{6,15}$/,message: "密码必须是6-15位的非空字符",trigger: "blur",},],repassword: [{ required: true, message: "请再次确认密码", trigger: "blur" },{pattern: /^\S{6,15}$/,message: "密码必须是6-15位的非空字符",trigger: "blur",},// 使用 validator 属性,来应用自定义的校验规则{validator: (rule, value, callback) => {// 形参中的 value 表示被绑定的元素的值if (value !== this.form.password) {// 校验失败callback(new Error("两次密码不一致!"));} else {// 校验成功callback();}},trigger: "blur",},],}, 

然后对html中的form部分标签中增加内容

  • 在el-form中:model绑定form,:rules绑定formRules,
  • 在el-form-item中prop绑定form中的数据,注意这里不需要写form.username,只需要写username
<!-- 注册的表单区域 --><el-form :model="form" :rules="formRules" ref="formRef"><el-form-item prop="username"><el-inputplaceholder="请输入用户名"prefix-icon="el-icon-user"v-model="form.username"></el-input></el-form-item><el-form-item prop="password"><el-inputplaceholder="请输入密码"prefix-icon="el-icon-lock"v-model="form.password"show-password></el-input></el-form-item><el-form-item prop="repassword"><el-inputplaceholder="请输入再次确认密码"prefix-icon="el-icon-lock"v-model="form.repassword"show-password></el-input></el-form-item></el-form> 

3.4method中的发送数据

首先给html中的注册按钮绑定一个点击事件@click=‘doRegister’

<el-button type="primary" style="width: 100%" @click="doRegister">注册</el-button> 

然后在methods里定义事件doRegister:

  • 通过$refs获得表单的dom元素
  • 使用validate对数据进行校验,如果成功发送ajax
  • 这里使用了promise的语法糖async-await,来实现同步的写法实现异步的效果
// 2.方法methods: {// 2.1注册doRegister() {// (1).检查表单时是否校验通过this.$refs.formRef.validate(async (valid) => {if (valid) {// (2).校验通过,发送ajaxconst { data: res } = await this.$axios.post("/api/reg", {...this.form,});}});},}, 

3.5处理数据

根据ajax返回的数据中的code来判断,是注册成功还是注册失败

(这里要通过后端提供的接口文档来确定什么code是失败,什么code是成功)> 我这里code为0是成功,1是失败

  • 注册成功跳转登录页, this.$router.push(“/login”);通过路由实现
  • 弹出成功信息框: this.$message.success(res.message);
  • 错误则弹出失败信息框:this.$message.error(res.message)
 // 2.方法methods: {// 2.1注册doRegister() {// (1).检查表单时是否校验通过this.$refs.formRef.validate(async (valid) => {if (valid) {// (2).校验通过,发送ajaxconst { data: res } = await this.$axios.post("/api/reg", {...this.form,});// (3).处理数据if (res.code === 0) {// 跳转登录页this.$router.push("/login");// 弹出信息框this.$message.success(res.message);} else {this.$message.error(res.message);}}});},}, 

4总结

  • 业务思路 1.获取数据 2.校验数据 3.发送请求 4.处理响应数据

最后

为大家准备了一个前端资料包。包含54本,2.57G的前端相关电子书,《前端面试宝典(附答案和解析)》,难点、重点知识视频教程(全套)。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/68412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

哪款TWS耳机音质比较好?音质最好的TWS耳机推荐

现如今&#xff0c;喜欢戴蓝牙耳机听歌的人越来越多&#xff0c;甚至一些高端的蓝牙耳机在音质上可以媲美有线耳机。最近看到很多人问&#xff0c;哪款TWS耳机音质比较好&#xff1f;下面&#xff0c;我来给大家推荐几款音质最好的TWS耳机&#xff0c;可以当个参考。 一、南卡…

jsp社区医院信息系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp社区医院信息系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql&#xff0c;使用…

将苹果手机数据导入苹果手机苹果?如何传输苹果手机数据

当用户需要将数据传输到苹果手机&#xff0c;应该怎么操作呢&#xff1f;所以&#xff0c;在本文中&#xff0c;易我小编将讲解将苹果手机数据导入苹果手机苹果&#xff1f; 方法1、利用iOS的快速迁移功能 如果是使用版本iOS 12.4及更高版本系统&#xff0c;新手机还没进行任何…

博世XC事业部李胤:自动驾驶降温不意外,但这条路肯定会走下去

“&#xff08;今年自动驾驶&#xff09;有些降温&#xff0c;这是正常的。所有的新技术不可能一路发展直上云天&#xff0c;总有坎坷。”2022年11月22日下午&#xff0c;博世智能驾驶与控制事业部&#xff08;以下简称“博世XC事业部”&#xff09;中国区总裁李胤在媒体群访中…

脑电信号分类问题的数据预处理方法

脑电波介绍 脑电波&#xff08;Electroencephalogram, EEG&#xff09;是应用电生理指标来记录大脑活动的方法。大脑在活动时&#xff0c;神经元同步发生突触后电位反应在了头皮表面&#xff0c;研究者将电机放置在被试者的头皮上检测脑电波信号。电机位置大概如下&#xff1a;…

[python] 基于wordcloud库绘制词云图

词云Wordcloud是文本数据的一种可视化表示方式。它通过设置不同的字体大小或颜色来表现每个术语的重要性。词云在社交媒体中被广泛使用&#xff0c;因为它能够让读者快速感知最突出的术语。然而&#xff0c;词云的输出结果没有统一的标准&#xff0c;也缺乏逻辑性。对于词频相差…

Log,SqlServerProfile, EFProfile三种监视EntityFramework中的sql流

大家在学习entityframework的时候,都知道那linq写的叫一个爽,再也不用区分不同RDMS的sql版本差异了,但是呢,高效率带来了差灵活性,我们 无法控制sql的生成策略,所以必须不要让自己缺乏好的工具去监控sql,本篇给大家介绍的三种监控手段Log和SqlServer profile,ef profi…

QA | SWCF2022 笔记:卫星传输链路中的关键技术分享

2022年度SWCF卫星通信与仿真测试研讨会正在进行中。精彩演讲&#xff1a;卫星传输链路中的关键技术分享&#xff0c;收到一些粉丝的技术问题&#xff0c;我们汇总了热点问题并请讲师详细解答。 主题&#xff1a;卫星传输链路中的关键技术分享 认识卫星通信与传输链路过程 1. …

来看看火爆全网的ChatGPT机器人写的武侠小说,我直呼内行!

作为一个程序员&#xff0c;不免对最近爆火的ChatGPT聊天机器人非常好奇&#xff0c;晚上睡不着觉&#xff0c;经过一番折腾&#xff0c;总算和ChatGPT聊上了。然后突发奇想&#xff0c;让它写武侠小说如何&#xff0c;会让小说家失业吗&#xff1f;结果机器人的反应让我直呼内…

RfDNet 在Ubuntu16下的配置与运行——(二)数据准备与训练

RfDNet 在Ubuntu16下的配置与运行——(二)数据准备与训练 相关博客&#xff1a;RfDNet 在Ubuntu16下的配置与运行——(一)运行Demo 接上篇&#xff0c;现在需要下载数据&#xff0c;官方使用的训练数据为&#xff1a; ScanNet 数据集 Scan2CAD 数据集&#xff1a;Scan2CAD ali…

Linux(常用命令)

(1)目录操作 ls 列出当前目录下都有啥ls / 或者 跟个具体的路径可以查看指定目录的内容ls -l 缩写为 ll 可以以列表的形式展示目录内容pwd 查看当前路径对应的绝对路径 cd / 切换到根目…

Redis缓存篇:高频问题横扫核心知识点,面试高级工程师必备知识体系

文章目录Redis 为什么这么快&#xff1f;到底有多快&#xff1f;基于内存实现高效的数据结构SDS 简单动态字符串优势zipList 压缩列表quicklistskipList 跳跃表整数数组&#xff08;intset&#xff09;单线程模型I/O 多路复用模型Redis 全局 hash 字典Hash 冲突怎么办&#xff…

vue 如何获取路由详细内容信息

目录前言&#xff1a;路由&#xff08;router&#xff09;的信息&#xff1a;获取路由的所有信息获取路由中每个信息的单个值获取路由中需要显示的值总结&#xff1a;前言&#xff1a; vue 中路由&#xff08;router&#xff09;的功能就是&#xff1a;把 url 与 应用中的对应…

【视觉高级篇】23 # 如何模拟光照让3D场景更逼真?(上)

说明 【跟月影学可视化】学习笔记。 光照效果简介 物体的光照效果是由光源、介质&#xff08;物体的材质&#xff09;和反射类型决定的&#xff0c;而反射类型又由物体的材质特点决定。 在 3D 光照模型中&#xff0c;根据不同的光源特点分为四种&#xff1a; 环境光&#…

事务相关知识集锦

作者&#xff1a;李玉亮 引言 数据库事务与大多数后端软件开发人员的工作密不可分&#xff0c;本文从事务理论、事务技术、事务实践等方面对常用的相关事务知识进行整理总结&#xff0c;供大家参考。 &#xfeff;&#xfeff; 事务理论介绍 事务定义 在数据库管理系统中&…

Navicat!OceanBase社区版新朋友来啦!

引言&#xff1a; 近期&#xff0c;Navicat Premium 16.1与Navicat for MySQL 16.1版本&#xff0c;将新增 OceanBase 社区版兼容功能&#xff0c;为用户在使用 OceanBase 社区版迁移过程中提供数据库管理开发工具新的选择&#xff0c;旨在帮助用户提升工作效率&#xff0c;减少…

「模型即服务AI」1分钟调用SOTA人脸检测,同时搭建时光相册小应用

时光相册应用效果一、物料 人脸检测&#xff1a;https://modelscope.cn/models/damo/cv_resnet101_face-detection_cvpr22papermogface/summary 时光相册&#xff1a; https://modelscope.cn/studios/damo/face_album/summary 二、背景 最近有两个计算机应用发展的方向正在潜…

社区疫情防控系统毕业设计,社情疫情防控系统设计与实现,毕业设计怎么写论文源码开题报告需求分析怎么做

项目背景和意义 目的&#xff1a;本课题主要目标是设计并能够实现一个基于web网页的疫情下社区健康评估系统&#xff0c;整个网站项目使用了B/S架构&#xff0c;基于java的springboot框架下开发&#xff1b;通过后台设置网站信息&#xff0c;设置广告信息&#xff0c;查看和管理…

2022选择了交大,回顾这一年的成长

Datawhale干货 作者&#xff1a;王琦&#xff0c;上海交通大学&#xff0c;Datawhale成员2022年是颇为忙碌的一年&#xff0c;今年我从中国科学院大学毕业、申请上了上海交通大学的博士、参与贡献了开源教程“Easy-RL”&#xff08;5.6K GitHub Stars&#xff09;、出版了著作《…

【面试高频题】难度 2/5,回溯算法经典运用

题目描述 这是 LeetCode 上的 93. 复原 IP 地址 &#xff0c;难度为 中等。 Tag : 「回溯」、「DFS」 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;&…