成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

利用angular4和nodejs-express構(gòu)建一個簡單的網(wǎng)站(五)—用戶的注冊和登錄-Htt

feng409 / 1424人閱讀

摘要:后臺注冊成功后,會返回狀態(tài)的認(rèn)證信息。后臺數(shù)據(jù)的處理,詳見利用和構(gòu)建一個簡單的網(wǎng)站三訪問。在這個方法中分別針對這兩種錯誤進(jìn)行處理。

上一節(jié)簡單介紹了一下利用angular構(gòu)建的主路由模塊,根據(jù)上一節(jié)的介紹,主頁面加載時直接跳轉(zhuǎn)到用戶管理界面,下面就來介紹一下用戶管理模塊。啟動應(yīng)用后,初始界面應(yīng)該是這樣的:


用戶管理模塊(users)包括主模塊UsersModule和HomeComponent、LoginComponent、RegistComponent、UsersComponent幾個組件和路由模塊UsersRoutingModule還有一個服務(wù)類UserService,因為這個服務(wù)還要在其他模塊中使用,先把它放在AppModule的providers中,現(xiàn)在AppModule的providers應(yīng)該為這樣:

providers: [
    JumbotronServive,
    UserService,
  ],
UserService服務(wù)

UserService類主要負(fù)責(zé)向服務(wù)器傳遞用戶的注冊和登錄信息,代碼如下:

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 "發(fā)生錯誤,錯誤信息:" + 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 為應(yīng)用程序提供了一個簡化的 API 來實現(xiàn) HTTP 功能。它基于瀏覽器提供的XMLHttpRequest接口。 HttpClient帶來的其它優(yōu)點包括:可測試性、強(qiáng)類型的請求和響應(yīng)對象、發(fā)起請求與接收響應(yīng)時的攔截器支持,以及更好的、基于可觀察(Observable)對象的錯誤處理機(jī)制。要使用HttpClient,先要引入HttpClientModule,將HttpClientModule引入到AppModule的NgModule的imports屬性的數(shù)組中。
saveUser()方法負(fù)責(zé)將用戶的注冊信息post給后臺服務(wù)器,它接收一個User類的對象為參數(shù),通過HttpClient類型的對象http的post方法將包含用戶名、密碼和用戶郵箱(可以為空值)的saveUser對象傳遞到服務(wù)器。后臺注冊成功后,會返回狀態(tài)200的認(rèn)證信息。(后臺數(shù)據(jù)的處理,詳見利用angular4和nodejs-express構(gòu)建一個簡單的網(wǎng)站(三)—express訪問mysql)。
getUser()方法也接收一個User類的對象為參數(shù),將登陸的用戶名和密碼post到后臺服務(wù)器,如果用戶名和密碼匹配同樣返回返回狀態(tài)200的認(rèn)證信息。
saveUser和getUser方法返回的都是一個 Observable>對象,當(dāng)我們調(diào)用這兩個方法后,需要使用Observable的subscribe方法進(jìn)行訂閱,才能真正發(fā)起一次請求并獲得后端返回的數(shù)據(jù)。
handleError()方法負(fù)責(zé)錯誤處理,它接收一個HttpErrorResponse類型的參數(shù)。對于HttpClient的錯誤一般有兩種,如果后端返回了一個失敗的返回碼(如404、500等),它會返回一個錯誤。如果在客戶端這邊出了錯誤(比如在RxJS操作符中拋出的異常或某些阻礙完成這個請求的網(wǎng)絡(luò)錯誤),就會拋出一個Error類型的異常。在這個方法中分別針對這兩種錯誤進(jìn)行處理。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/51861.html

相關(guān)文章

  • 利用angular4nodejs-express構(gòu)建一個簡單網(wǎng)站)—用戶注冊登錄-Htt

    摘要:后臺注冊成功后,會返回狀態(tài)的認(rèn)證信息。后臺數(shù)據(jù)的處理,詳見利用和構(gòu)建一個簡單的網(wǎng)站三訪問。在這個方法中分別針對這兩種錯誤進(jìn)行處理。 上一節(jié)簡單介紹了一下利用angular構(gòu)建的主路由模塊,根據(jù)上一節(jié)的介紹,主頁面加載時直接跳轉(zhuǎn)到用戶管理界面,下面就來介紹一下用戶管理模塊。啟動應(yīng)用后,初始界面應(yīng)該是這樣的: showImg(https://segmentfault.com/img/bV3...

    Lin_R 評論0 收藏0
  • 利用angular4nodejs-express構(gòu)建一個簡單網(wǎng)站(六)—用戶模塊路由分析

    摘要:上一節(jié)解決了用戶注冊和登錄數(shù)據(jù)部分的內(nèi)容。這一節(jié)開始分析用戶模塊用戶路由。用戶管理模塊分析主要代碼如下數(shù)組中,是構(gòu)建子組件必須引入的模塊。當(dāng)點擊標(biāo)簽時,根據(jù)路由定義直接跳轉(zhuǎn)到組件,進(jìn)行用戶的注冊操作。 上一節(jié)解決了用戶注冊和登錄數(shù)據(jù)部分的內(nèi)容。這一節(jié)開始分析用戶模塊、用戶路由。## 用戶管理模塊UserModule分析 ##UserModule主要代碼如下: import { NgMo...

    cfanr 評論0 收藏0
  • 利用angular4nodejs-express構(gòu)建一個簡單網(wǎng)站(九)—用戶登錄

    摘要:好了,廢話少說,繼續(xù)吧這一章主要講利用控制用戶登錄。在前面的用戶注冊表單中使用了的響應(yīng)式表單。在構(gòu)造函數(shù)中聲明了一個對象一個對象和對象對象。并在構(gòu)造函數(shù)中用的方法更新了網(wǎng)頁的標(biāo)題。接下來導(dǎo)航到下一個頁面,并提示用戶登錄成功。 最近工作比較忙,一直沒有更新文章。原來看別人的文章感覺很過癮,現(xiàn)在自己寫才發(fā)現(xiàn),要堅持下去真的很難。好了,廢話少說,繼續(xù)吧!這一章主要講利用angularJs控制...

    Snailclimb 評論0 收藏0

發(fā)表評論

0條評論

feng409

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<