利用angular4和nodejs-express构建一个简单的网站(八)—注册之保存用户数据

news/2024/4/28 17:13:32/文章来源:https://blog.csdn.net/weixin_34289454/article/details/88867996

上一章通过用户注册讲解了响应式表单ReactiveForm,这章主要讲解如何向服务器提交注册数据并导航到好友信息模块。

提交注册信息

向服务器提交信息是通过模板中<form [formGroup]="registForm" (ngSubmit)="onSubmit()" novalidate>标签中的(ngSubmit)="onSubmit()进行提交的。在填写好正确的信息后,按钮<button type="submit" class="btn btn-primary" [disabled]="registForm.invalid">Submit</button>会变为可用状态,点击按钮后,onSubmit()方法就会得到执行,onSubmit()方法的代码为:

onSubmit() {this.user = this.prepareSaveUser();this.userSer.saveUser(this.user).subscribe(() => {this.tokenServ.setToken(value['token']);this.router.navigate(['/birthday']);alert('注册成功!');},(err) =>alert(this.userSer.handleError(err)),() => {console.log('The post observable is now completed.');});

prepareSaveUser()方法用于将FormGroup类型对象registForm的属性值赋给一个User对象,并返回这个对象,用于发送用户数据(利用FormGroup构建响应式表单的内容,请看第七章的内容)。prepareSaveUser()方法的代码如下:

prepareSaveUser(): User {const formModel = this.registForm.value;const saveUser: User = {id: this.user.id,name: formModel.name as string,password: formModel.password as string,email: formModel.email};return saveUser;}

把prepareSaveUser()方法的返回值赋值给User对象之后,调用UserService类的saveUser()方法,将注册信息发送到服务器(关于UserService服务类,请看第五章的内容)。如果注册成功,服务器会返回一个token字符串,存储了从服务器获取需要用户认证的内容时凭证。利用AuthTokenService的setToken()方法将这个凭证存储到本地。AuthTokenService类的代码:

import { Injectable } from '@angular/core';
@Injectable()
export class AuthTokenService{setToken(token:string){sessionStorage.removeItem('token');if((token as string).length != 0){sessionStorage.token = token;console.log('sessionStorage.token: ' + sessionStorage.token);} }getToken(){if(sessionStorage.token){return sessionStorage.token;}else{return null;}}
}

AuthTokenService类是一个服务类,因为其他模块也需要用到,将它放到AppModule的providers数组中:

@NgModule({declarations: [...],imports: [...],providers: [...AuthTokenService],bootstrap: [AppComponent]
})
export class AppModule { }

这个服务提供商的主要工作就是将token的值存储到sessionStorage中,在需要的时候进行取出。 sessionStorage针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。
如果在注册过程中发现错误,就在对话框中显示UserService的handleError()方法返回的错误提示信息。

导航到下一页面

如果注册成功,就调用Router类的navigate()方法,跳转到/birthday的url,进入BirthdaysModule模块。

重置Form

如果需要重新填写表单内容,按Cancel按钮后,将触发revert()方法,代码如下:

reset() {this.user = new User(0, '', '', '');this.registForm.reset({name: this.user.name,               password: this.user.password,email: this.user.email})}

这里主要调用了FormGroup类的reset()方法,将所有属性值设为this.user对象的属性值,从而实现表单的重置。

总结

用户注册的内容大致就是这些,主要知识包括angular的HttpClient、ReactForm两方面的知识。下一章将要讲解用户登录的内容,在用户登录表单中,我将使用模板驱动型表单进行操作。敬请期待......

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日系博客HTML网站设计,源码搭建,无插件无框架,含音乐播放器,时钟日历,轮播图,相册

引言 为课程作业&#xff0c;设计参考了无印良品日本官网 应老师要求不使用JQ&#xff0c;全部效果源码一行行敲出来&#xff0c;浏览器用的是360极速浏览器&#xff0c;未对其他浏览器内核进行适配&#xff0c;最终实现的效果如下&#xff0c;可进入展示页面查看 展示页面&am…

网站调用支付宝进行支付-Java后台调用支付宝支付

网站调用支付宝进行支付-Java后台调用支付宝支付 最近公司一个产品用到了打赏支付&#xff0c;其中一个是支付宝&#xff0c;记录一下java后台调用支付宝的过程付代码。本文讲的是使用沙箱环境(支付宝提供的一种开发专用模式&#xff0c;不要实际支付&#xff0c;可以走通整个流…

整理了一周的Python资料,包含各阶段所需网站、项目,收藏了慢慢来

为什么80%的码农都做不了架构师&#xff1f;>>> 这周应该有不少学校已经开学了&#xff0c;那么同学们都该动起来了&#xff0c;把家里面的那些懒习惯给扔掉了可以。 不知怎么的&#xff0c;最近不少关注我的读者都开始私信我怎么学好python&#xff1f;零基础转行…

HTML——body 计算机代码 【头部在“网站开发”中】

HTML属性 完整的属性列表 在引用属性值的时候&#xff0c;如果某些属性本身就有双引号——name John "ShotGun" Nelson 转载于:https://www.cnblogs.com/expedition/p/10889312.html

linux/centos svn搭建及网站同步更新

开发十年&#xff0c;就只剩下这套架构体系了&#xff01; >>> 一 搭建篇 yum install -y subversion svnserve --version 二 创建项目仓库 mkdir /var/svn cd /var/svn svnadmin create /var/svn/[项目名] 三 配置项目仓库 cd /var/svn/[项目名]/conf 1.修改综合配…

[Windows] 【黑科技】在线视频一键下载器:无尽一键视频下载v0.2主流视频网站想下就下...

撸了今年阿里、头条和美团的面试&#xff0c;我有一个重要发现.......>>> 前言 在线视频下载工具不算少&#xff0c;但真正好用的少之又少。很多软件步骤繁琐&#xff0c;下载速度慢&#xff0c;失效很快。我通过研究与写代码实现了真正一键就把视频下载下来。我的原…

[Android] 我的听书 谷歌版是一个帮助大家播放听书网站的播放器

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 注意事项&#xff1a; 如果锁屏不能自动切下一首&#xff0c;依次试一下&#xff1a; 1. 开启锁屏通知 2. 给app加锁 3. 前两者都不行时则去加后台白名单。 关于离线下载&#xff1a;不想给被抓取的网站增加负担…

国外停课后上百个教育网站官宣免费,亲测后发现这10个在国内秒打开!

随着海外疫情的爆发&#xff0c;世界各地的学校陆续开启了停课模式。为了方便学生们在家进行线上学习&#xff0c;各大教育网站也都纷纷推出了前所未有的阶段免费。这对一直以来给孩子苦苦寻求学习资源的老师和家长们来说&#xff0c;简直有了“一夜暴富”的赶脚。1. 教学资源网…

利用AirExplorerProPortable 实现网站 每日备份

Air Explorer Pro&#xff08;v2.8.1&#xff09;是一款非常出色的云存储资源管理工具&#xff0c;支持OneDrive、WebDAV和Google Drive等绝大多数云服务器&#xff0c;可以在将文件上传到云时对文件进行加密&#xff0c;同时还可在任何云或计算机之间同步文件夹。一个软件就可…

微软没强迫?Win 10 版本号追踪网站 Buildfeed 关闭

百度智能云 云生态狂欢季 热门云产品1折起>>> 近日&#xff0c;迫于各方压力&#xff0c;知名 Windows 10 版本号追踪网站 Buildfeed 宣布关闭。对于 Windows Insider 用户来说&#xff0c;即时获取最新 Windows 10 预览版本信息很重要&#xff0c;目前微软官方有提…

用apicloud 免费,简单封装一个wap手机网站成android app

APICloud是国内较早布局低代码开发的平台之一&#xff0c;其发布的低代码效率工具Plus Mode&#xff0c;为IT项目中每个角色提供专业工具&#xff0c;将需求分析、产品原型、UI设计、前端开发、后端开发紧密衔接&#xff0c;并基于行业大数据对前置环节进行复用&#xff0c;最终…

好域名怎么选?总结15名网站大佬给我的8条建议!(精华)

写网站上线的文章中提到需要有域名&#xff0c;本来是想在百度里搜一篇“选域名方面”的文章链接过去就好&#xff0c;但是看了好几篇&#xff0c;讲的都太笼统了&#xff0c;看完不知所云&#xff0c;一看就是“互相借鉴”的文章。所以我问了身边的几十位大佬&#xff0c;让他…

网站漏洞修复之苹果cms电影系统

2019独角兽企业重金招聘Python工程师标准>>> 苹果cms系统&#xff0c;是目前很多电影网站都在使用的一套网站系统&#xff0c;开源&#xff0c;免费&#xff0c;扩展性较好&#xff0c;支持一键采集&#xff0c;伪静态化&#xff0c;高并发的同时承载&#xff0c;获…

蜻蜓fm收音机电脑版_网页版全网音乐搜索解析下载网站,完全免费使用,支持网易酷狗酷我虾米百度一听咪咕荔枝蜻蜓 喜马拉雅全民K歌...

关注我们一起玩耍吧&#xff01;微信公众号&#xff1a;微友集市我们不生产资源我们做互联网搬运工这里是“微友集市”&#xff0c;我们坚持分享优质的资源&#xff0c;让更多人能用到更好的资源&#xff0c;少花冤枉钱。如果你有什么需要&#xff0c;可以给我们留言&#xff0…

8x8点阵字体在线生成器_字体字形网站合集

求字体&#xff0c;提供中文和英文字体库下载、识别与预览服务。传送门&#xff1a;http://www.qiuziti.com字体之家&#xff0c;提供各种字体打包下载&#xff0c;中文字体、英文字体、PS字体、艺术字体、手机软件、字体工具等。传送门&#xff1a;http://www.17ziti.com站长字…

.net mvc 获取iis基本登录网站登录账号_超赞!用Java实现了第三方qq账号登录...

传智汇传智播客旗下IT互联网精英社区作者&#xff1a;人间蒸发来源&#xff1a;zuidaima.com/blog/4725615031700480.htmQQ互联注册一个账号网站地址&#xff1a;https://connect.qq.com/&#xff0c;添加一个应用&#xff0c;具体怎么申请以及需要填写的信息&#xff0c;腾讯官…

eclipse tomcat新建一个_Eclipse搭建本地动态网站环境

准备Eclipse和Tomcat完成Web容器的配置在Eclipse中配置Tomcat (web容器)1、选择window->show view->other->servers 下面出现了servers点击 no servers are available click this link to create a new server -> 选择Tomcat7(下载的是7)->点击下一步->browe…

sqlite用户名密码_黑客利用工具轻易获取管理员账户密码,你的网站危险了

首先&#xff0c;先简单介绍下sqlmap简介&#xff1a;sqlmap是一种开源的工具&#xff0c;可以自动检测和利用SQL注入以及接入该库的服务器。它拥有非常强大的检测引擎、具有多种特性的器、通过库指纹提取访问底层文件系统并通过外带连接执行命令。支持的数据库&#xff1a;MyS…

服装设计网页制作_小众精选样机在线制作网站,大量免费的模型PSD分层

样机素材是设计行业的专用名词&#xff0c;又叫模板。是设计图案模拟到实物或场景展示的可重复套用模型。是将设计图案应用到一个实物效果图中进行展示&#xff0c;让设计图案看起来更加形象逼真。在国内也称样机素材为&#xff1a;标志模板、模拟机、贴图样机、智能贴图。用途…

kali如何制作php字典_sqlmap如何用dirsearch.py协助osshell拿到目标网站shell

本文首发于FreeBuf→https://www.freebuf.com/sectool/256588.html沙漏安全团队欢迎真正热爱技术的你&#xff01;SQLMAPsqlmap是一个开源渗透测试工具&#xff0c; 它可以自动检测和利用SQL注入漏洞并接管数据库服务器。它具有强大的检测引擎&#xff0c;同时有众多功能&#…