0

我正在从另一个模型验证模型,如下所示

Model.addFavorite = function (data, callbackFn) {
        if (data) {
            var faviroteModel = this.app.models.Favorite;
            var objFavorite = new faviroteModel(data);
            objFavorite.isValid(function (isValid) {
                if (isValid) {
                    callbackFn(null, objFavorite);
                }
                else {                   
                    callbackFn(objFavorite.errors);
                }
            });
        }
        else callbackFn("Post data required", {});
    }

如果我这样做,那么我会收到如下错误

{
  "error": {
    "statusCode": 500,
    "t": [
      "is not a valid date"
    ]
  }
}

它应该带有如下错误消息

{
  "error": {
    "statusCode": 422,
    "name": "ValidationError",
    "message": "The `Favorite` instance is not valid. Details: `t` is not a valid date (value: Invalid Date).",
    "details": {
      "context": "Favorite",
      "codes": {
        "t": [
          "date"
        ]
      },
      "messages": {
        "t": [
          "is not a valid date"
        ]
      }
    }
  }
}

谁能告诉我我在这里想念什么。

我怎样才能做到这一点。

4

1 回答 1

1

https://github.com/strongloop/loopback-datasource-juggler/blob/master/lib/validations.js#L843

您可能会遇到需要自己引发验证错误的情况,例如在“之前”挂钩或自定义模型方法中。

    if (model.isValid()) {
        return callback(null, { success: true });
    }

    // This line shows how to create a ValidationError
    var err = new MyModel.ValidationError(model);
       callback(err);
    }
于 2018-03-28T12:18:42.760 回答