【问题标题】:Ionic 2: Validate Email if already exists in the database(API)Ionic 2:验证电子邮件是否已存在于数据库中(API)
【发布时间】:2017-08-21 05:37:01
【问题描述】:

我想验证用户名是否已存在于我的数据库中。这是我的代码:`

import { FormControl } from '@angular/forms';

export class EmailValidator {

  static checkEmail(control: FormControl): any {

    return new Promise(resolve => {

        let EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;

        if (control.value != "" && (control.value.length <= 5 || !EMAIL_REGEXP.test(control.value))) { 

          resolve({
            "Please provide a valid email": true
          });

        }else if(control.value.toLowerCase() === "sample123@yahoo.com"){

          resolve({
            "email taken": true
          });

        }else {
          resolve(null);
        }

    });
  }

}

希望你能帮助我。提前致谢。

【问题讨论】:

  • else if(control.value.toLowerCase() === "sample123@yahoo.com") 此代码检查 sample123@yahoo.com 是否永远无法使用。我想从我的 API 中替换它。
  • 不,MySQL。我有 API。

标签: angular api validation ionic2


【解决方案1】:

逻辑可以恢复到以下概念(大致):

表单验证

this.authService.registerEmail(email).subscribe(data => {
  if (data.success) {
     //server answered that the email doesn' exist
     showSucces();
     doSomthingHere(); //route? 
  }
  else{
    //failed, email exists
    showFail();
    doReturnToTheForm(); //route back
  }

AuthService

  registerEmail(email) {
    return this.dataService.postData(someUrl, email);
  }

dataService 在哪里发出由后端服务器管理的 http POST 请求。

数据服务

 constructor(private http:Http)
    postData(dataUrl: string, body: any): Observable<any> {
        return this.http.post(url, JSON.stringify(body), { headers: this.getHeaders(null) })
            .map(res => res.json())
            .catch((res: Response) => this.errorManager(res));
    }

【讨论】:

    【解决方案2】:

    您可以通过创建 Api 并在请求中传递电子邮件来做到这一点。作为回应,您将从服务端获得成功或错误。 如果没有 Api 调用,您将无法处理它。

    【讨论】:

    • 谢谢。但是,如果我已经有了我的 API,我到底要做什么。我将如何比较我的 API 中已经存在的电子邮件中输入的电子邮件。
    • 如果你使用的是 MYSQL,你可以像这里一样使用。 stackoverflow.com/questions/19670326/…
    • 我正在使用 Angular 2 和 JSON API
    猜你喜欢
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 2020-12-09
    • 1970-01-01
    • 2019-09-17
    • 2020-03-17
    相关资源
    最近更新 更多