上一节简单介绍了angular搭建的主要路由模块。根据上一节的介绍,主页面加载直接跳转到用户管理界面,下面介绍用户管理模块。应用启动后,初始界面应该是这样的:用户管理模块(users)包括主模块UsersModule和HomeComponent、LoginComponent、RegistComponent、UsersComponent几个组件和路由模块UsersRoutingModule和一个服务类UserService,因为这个服务需要要在其他模块中使用,先放在AppModule的providers中,现在AppModule的providers应该是这样的:providers:[JumbotronServive,UserService,],UserServiceUserService类主要负责传递将用户的注册登录信息发送到服务器,代码如下:common/http';从'rxjs/Observable'导入{Observable};@Injectable()exportclassUserService{constructor(privatehttp:HttpClient){}//注册用户saveUser(user:User){constsavedUser={name:user.name,password:user.password,email:user.email}returnthis.http.post('http://localhost:3000/users/register',savedUser,{responseType:"json"});}//登录getUser(用户:用户){constloginUser={名称:用户名,密码:用户密码};returnthis.http.post('http://localhost:3000/users/login',loginUser,{observe:'response'});}//错误处理handleError(err:HttpErrorResponse):string{if(err.errorinstanceofError){return'发生错误,错误信息:'+err.error.message;}else{console.log(`后端返回代码${err.status},bodywas:${err.error['msg']}`);返回err.error['msg'];}}}这里用到了User类,User类的代码:exportclassUser{constructor(publicid:number,publicname:string,publicpassword:string,publicemail:string){}}最重要的UserService中的是HttpClient,这是angular4之后新增的功能。Angular为应用程序提供了一个简化的API来实现HTTP功能,它基于浏览器提供的XMLHttpRequest接口。HttpClient带来的其他优势包括:可测试性、强类型请求和响应对象、发起请求和接收响应时的拦截器支持以及基于Observable对象的更好的错误处理机制。使用HttpClient首先要引入HttpClientModule,将HttpClientModule导入到AppModule的NgModule的imports属性数组中。saveUser()方法负责将用户的注册信息发布到后台服务器。它接收一个User类的对象作为参数,通过HttpClient类型的对象http的post方法将包含用户名、密码和用户邮箱(可以为空)的saveUser对象传递给服务器。后台注册成功后,会返回状态为200的认证信息。(后台数据处理详见Angular4和Nodejs-express搭建简易网站(三)——快速访问Mysql)。getUser()方法也接收一个User类的对象作为参数,将登录用户名和密码发布到后台服务器。如果用户名和密码匹配,它还会返回状态为200的身份验证信息。saveUser和getUser方法都返回一个Observable