利用angular4和nodejs-express构建一个简单的网站(五)—用户的注册和登录-HttpClient...

news/2024/4/29 16:15:47/文章来源:https://blog.csdn.net/weixin_33946605/article/details/88882507

上一节简单介绍了一下利用angular构建的主路由模块,根据上一节的介绍,主页面加载时直接跳转到用户管理界面,下面就来介绍一下用户管理模块。启动应用后,初始界面应该是这样的:

clipboard.png
用户管理模块(users)包括主模块UsersModule和HomeComponent、LoginComponent、RegistComponent、UsersComponent几个组件和路由模块UsersRoutingModule还有一个服务类UserService,因为这个服务还要在其他模块中使用,先把它放在AppModule的providers中,现在AppModule的providers应该为这样:

providers: [JumbotronServive,UserService,],

UserService服务

UserService类主要负责向服务器传递用户的注册和登录信息,代码如下:

import { Injectable } from '@angular/core';
import { User } from './user';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class UserService {constructor(private http: HttpClient) { }//注册用户saveUser(user: User) {const savedUser = {name: user.name,password: user.password,email: user.email}return this.http.post('http://localhost:3000/users/register', savedUser, {responseType: "json"});}//登录getUser(user: User) {const loginUser = {name: user.name,password: user.password};return this.http.post('http://localhost:3000/users/login', loginUser, {observe: 'response' });}//错误处理handleError(err: HttpErrorResponse): string {if (err.error instanceof Error) {return '发生错误,错误信息:' + err.error.message;} else {console.log(`Backend returned code ${err.status}, body was: ${err.error['msg']}`);return err.error['msg'];}}
}

这里面要用到User类,User类的代码:

export class User{constructor(public id:number,public name:string,public password:string,public email:string){}
}

在UserService中最主要的是HttpClient,它是angular4以后新功能,Angular 为应用程序提供了一个简化的 API 来实现 HTTP 功能。它基于浏览器提供的XMLHttpRequest接口。 HttpClient带来的其它优点包括:可测试性、强类型的请求和响应对象、发起请求与接收响应时的拦截器支持,以及更好的、基于可观察(Observable)对象的错误处理机制。要使用HttpClient,先要引入HttpClientModule,将HttpClientModule引入到AppModule的NgModule的imports属性的数组中。
saveUser()方法负责将用户的注册信息post给后台服务器,它接收一个User类的对象为参数,通过HttpClient类型的对象http的post方法将包含用户名、密码和用户邮箱(可以为空值)的saveUser对象传递到服务器。后台注册成功后,会返回状态200的认证信息。(后台数据的处理,详见利用angular4和nodejs-express构建一个简单的网站(三)—express访问mysql)。
getUser()方法也接收一个User类的对象为参数,将登陆的用户名和密码post到后台服务器,如果用户名和密码匹配同样返回返回状态200的认证信息。
saveUser和getUser方法返回的都是一个 Observable<HttpResponse<Object>>对象,当我们调用这两个方法后,需要使用Observable的subscribe方法进行订阅,才能真正发起一次请求并获得后端返回的数据。
handleError()方法负责错误处理,它接收一个HttpErrorResponse类型的参数。对于HttpClient的错误一般有两种,如果后端返回了一个失败的返回码(如404、500等),它会返回一个错误。如果在客户端这边出了错误(比如在RxJS操作符中抛出的异常或某些阻碍完成这个请求的网络错误),就会抛出一个Error类型的异常。在这个方法中分别针对这两种错误进行处理。

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

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

相关文章

网站被挂马实用如何解决的办法

最近单位网站在百度搜索点击打开都是黄色的&#xff0c;而直接输入网址反而没问题&#xff0c;在百度搜索中被提示为网站被黑的可能&#xff0c;很多客户搜索我们网站都进入了黄色网站&#xff0c;给公司的形象造成了很大的影响&#xff0c;作为公司的网站技术人员&#xff0c;…

电器商城系统java设计_基于java的商城网站系统的设计与实现.doc

基于java的商城网站系统的设计与实现.doc 许荣荣论商业银行小微企业信贷风险防范02016届毕业生毕业论文题目基于JAVA的商城网站系统的设计与实现院系别经济与管理学院专业电子商务班级电商121学号120914117姓名许荣倩指导教师张启徽二○一五年十一月许荣倩基于JAVA的商城网站系…

十周后,62%的PHP网站将运行在一个不受支持的PHP版本上

根据W3Techs的统计数据&#xff0c;目前约有78.9&#xff05;的网站使用PHP开发。\\但是&#xff0c;PHP 5.6.x的安全支持将在2018年12月31日正式停止&#xff0c;这标志着对古老的PHP 5.x分支版本的支持都将结束。\\也就是说&#xff0c;从明年开始&#xff0c;大约62&#xf…

电脑某个服务器的网站都打不开,电脑某个网站打不开的解决方法

电脑的网络链接没有问题&#xff0c;QQ和其他网页也能正常打开&#xff0c;唯独个别网站打不开&#xff0c;而且也确定了该网站的服务器没有问题&#xff0c;这时候基本就可以确定是DNS故障了。下面是学习小编给大家整理的有关介绍个别网页打不开的解决方法&#xff0c;希望对大…

最好用的电脑软件商店_分享十个超好用的网站,个人一直在用

1&#xff1a;Slanthttps://www.slant.co/Slant 是一个帮助你找到最好的产品和工具的一个实用网站&#xff1b;它可以帮助你找到最好用的硬件&#xff0c;网站&#xff0c;软件&#xff1a;电脑软件&#xff0c;手机软件&#xff0c;游戏等等。例如&#xff1a;什么是最好的跨平…

python 第三方登录_第四百零四节,python网站第三方登录,social-auth-app-django模块,...

原博文 2017-10-14 10:17 − 第四百零四节&#xff0c;python网站第三方登录&#xff0c;social-auth-app-django模块&#xff0c; social-auth-app-django模块是专门用于Django的第三方登录OAuth2协议模块 目前流行的第三方登录都采用了OAuth2协议 安装 pip install -i ht...2…

凡科网站是php类型么,建网站?那要搞清楚网站类型

在建网站之前&#xff0c;常常有些新手站长其实并不了解自己的网站类型&#xff0c;就匆匆建站&#xff0c;往网站里面填充内容&#xff0c;后弄得网站乱糟糟的&#xff0c;也不知道怎么修改。那么在建网站之前&#xff0c;小编觉得我们有必要了解一下网站有什么类型&#xff0…

7建站php_一个工具教你辨别外贸建站公司到底是坑还是...大坑

很多人找外贸网站模板或者外贸公司建站&#xff0c;希望通过搭建独立站可以取得新的获客渠道。一个独立站如果想要有效果&#xff0c;那就必须有流量&#xff1b;想要流量&#xff0c;就意味着你的网站排名必须靠前&#xff1b;而排名&#xff0c;则由以下十个要素决定。1. 内容…

多肉商店html网页代码,[转载]国外多肉植物及种子购买网站(转载)

[转载]国外多肉植物及种子购买网站(转载)2019-09-17 11:19阅读&#xff1a;天天都要寻开心庾信平生最萧瑟&#xff0c;暮年诗赋动江关。关注http://www.succulentseeds.comhttp://sacredsucculents.comhttp://www.cactusplaza.comhttp://www.cactus-succulent.comhttp://www.pr…

android 怎么实现手机网站支付_Android接入支付宝实现支付功能

我本来是想直接讲Android支付这一块的&#xff0c;包括支付宝&#xff0c;微信&#xff0c;其他第三方整合支付等&#xff0c;但是微信开放平台他对我的账号做了限制&#xff0c;所有我今天就先把重心放在支付宝的支付上&#xff0c;也算是写得尽可能详细些吧&#xff0c;毕竟是…

去哪儿网代理网站机票价格采集方案

去哪儿网的代理网站有自己独立的机票搜索接口&#xff0c;例如http://xyx.trade.qunar.com/site/。 搜索结果使用Ajax动态加载&#xff0c;服务端返回的数据是JSON格式的。 难点在于返回的价格数据是加密的&#xff0c;返回价格与真实的价格之间有很大的偏差。在客户端使用JS进…

如何利用Python爬取网站数据?

1.基本方法 其实用python爬取网页很简单&#xff0c;只有简单的几句话&#xff1a; 这样就可以获得到页面的内容。接下来再用正则匹配去匹配所需要的内容就行了。但是&#xff0c;真正要做起来&#xff0c;就会有各种各样的细节问题。 2.登录 这是一个需要登录认证的网站。也…

sharepoint 创建网页服务器,在网站主页中配置SharePoint Server 2019网站创建 - SharePoint Server | Microsoft Docs...

在 SharePoint Server 2019 中配置自助式网站创建2021/6/1本文内容适用于&#xff1a;2013 2016 2019 Microsoft 365SharePoint中的自助式网站创建体验支持在不同的 Web 应用程序中创建新网站&#xff0c;而不管 Web 应用程序是托管在本地服务器场还是远程服务器场上。 这将在管…

今天教你用 Python 爬取网站的指南

通过基本的 Python 工具获得爬取完整 HTML 网站的实践经验。 &#xff08;本文字数&#xff1a;11235&#xff0c;阅读时长大约&#xff1a;14 分钟&#xff09; 有很多很棒的书可以帮助你学习 Python &#xff0c;但是谁真正读了这那些大部头呢&#xff1f;&#xff08;剧透&…

asp.net获取网站路径

网站在服务器磁盘上的物理路径: HttpRuntime.AppDomainAppPath虚拟程序路径: HttpRuntime.AppDomainAppVirtualPath 任何于Request/HttpContext.Current等相关的方法, 都只能在有请求上下文或者页面时使用. 即在无请求上下文时,HttpContext.Current为null. 而上面提到的方法一直…

Linux服务器知识导图,整理分享一些 Linux思维导图(值得收藏)_网站服务器运行维护,Linux...

Win10 改 Win7&#xff0c;BIOS 怎么设置&#xff1f;_网站服务器运行维护Win10改Win7&#xff0c;BIOS设置方法&#xff1a;首先进入到BIOS界面&#xff1b;然后将“secure”改为disabled&#xff1b;接着将“Boot List Option”改为UEFI&#xff1b;最后在“1st Boot Priorit…

3个pc网站适配手机的方法

新的形势下&#xff0c;移动网站的使用率越来越高。移动网站的优化如何做被更多的人所关注。这里切图移动就从目前三种比较常用的pc站点移动配置方式&#xff0c;并从性能&#xff0c;需求&#xff0c;成本方面对三者进行了分析&#xff0c;并给出相应的优化建议。pc站与移动站…

web网站加速之CDN(Content Delivery Network)技术原理

在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应速度、优化现有Internet中信息的流动,需要在用户和服务器间加入中间层CDN. 使用户能以最快的速度&#xff0c;从最接近用户的地方获得所需的信息&#xff0c;彻底解决网络拥塞&#xff0c;提高响应速度&…

网站性能测试:使用Selenium测试网页加载时间

WebLOAD与用于Web浏览器应用程序的开源测试工具Selenium的集成&#xff0c;使您可以将执行实际活动的真实Web浏览器集成到您的性能测试场景中&#xff0c;并准确识别问题。 使用集成&#xff0c;您可以使用WebLOAD的虚拟用户来压缩系统以生成负载&#xff0c;同时运行用于测量实…

网站性能工具Yslow的使用方法

Yslow是雅虎开发的基于网页性能分析浏览器插件&#xff0c;从年初我使用了YSlow后&#xff0c;改变了博客模板大量冗余代码&#xff0c;不仅提升了网页的打开速度&#xff0c;这款插件还帮助我分析了不少其他网站的代码&#xff0c;之前我还特意写了提高网站速度的秘籍&#xf…