Javascript一个接一个的方法调用

时间:2018-04-25 06:07:40

标签: javascript node.js

我想对__NodeJS Rest API__进行javascript验证,但我的问题是;

验证员类

class Checks {

 constructor() {

 }

 object(field) {
  return field;
 }

 keys(field) {
   if(typeof field === "string") {
    return true;
   }
  return false;
 }

}

module.exports = Validator;

我想用

Validator.validate(field).string()

但错误代码:

3 个答案:

答案 0 :(得分:0)

您可以将字段指定为当前实例的属性,然后返回this链接方法。

class Validator {

 constructor() {
   this.field = null;
 }

 validate(field) {
   this.field = field;
   return this;
 }

 string(field) {
   return typeof this.field === "string";
 }

}

module.exports = Validator;

//usage
const Validator = require('path/to/Validator');
new Validator().validate(field).string();

答案 1 :(得分:0)

你可以改变,

class Validator {

 constructor() {

 }


 validate(field) {
   if(typeof field === "string") {
    return true;
   }
  return false;
 }

}

module.exports = Validator;

拨打电话,

Validator.validate(field)

或者只是将验证功能更改为,

validate() {
  return this;
 }

并称之为,

Validator.validate().string(field)

答案 2 :(得分:0)

//validator-factory.js

class ValidatorFactory {

  static validate(field) {
    return new Validator(field);
  }

}

class Validator {

 constructor(field) {
   this.field = field;
 }

 string() {
   if(typeof this.field === "string") {
    return true;
   }
  return false;
 }

}

module.exports = ValidatorFactory;

然后,导入ValidatorFactory&使用如下

var ValidatorFactory = require('./validator-factory');
ValidatorFactory.validate(field).string();

请注意static&中使用ValidatorFactory关键字validate每次都会返回Validator类的新实例。