尝试验证附加到用户基本模型的模型时,Loopback 3崩溃

时间:2018-07-08 13:53:27

标签: node.js loopbackjs loopback

我被困在API的验证过程中。我想先验证多个对象,然后再将它们存储到数据库中。我创建了一个可以在远程方法中调用的函数,以处理验证。

下面的功能可以正常工作,仅帐户验证会引起问题。如果帐户对象无效,则我的Loopback API崩溃了。非常奇怪,因为我对其他两个模型所做的完全相同吗?

我尝试了很多事情,但是没有任何效果。希望有人可以指出正确的方向。

 async function validate() {
  vehicle.isValid(function(valid) {
    if (!valid)
      throw (vehicle.errors);
  });
  repairJob.isValid(function(valid) {
    if (!valid){
      console.log(repairJob.errors);
      throw (repairJob.errors);
    }
  });
  account.isValid(function(valid) {
    if (!valid){
      console.log(account.errors);
      throw (account.errors);
    }
  });
}

控制台输出

  

通过http://localhost:3000/explorer浏览REST API   错误{    密码:['不能为空'],    电子邮件:['不能为空','不能为空']}

     

/Users/xxx/Development/xxx/xxx-api-v2/common/models/job.js:105            抛出(account.errors);            ^   [对象对象]   [nodemon]应用程序崩溃-等待文件更改,然后再开始...

2 个答案:

答案 0 :(得分:2)

在您的account.json中,您可能已经提到done,是您从用户模型继承了帐户模型。如下所示,您在user.json中使用了"base": "User"电子邮件和密码属性,并且因此,环回将引发错误。如果您不希望这两个字段为必填字段,则可以通过设置电子邮件和密码required:true在account.json中进行更改。请检查您的请求,这两个字段是否有价值。{{3 }}

答案 1 :(得分:0)

根据文档(https://loopback.io/doc/en/lb3/Validating-model-data.html),您可以使用isValid方法

  

显式调用验证约束

每次创建或更新模型实例时,相同的环回将自动进行。 据我了解,account模型已经设置了"base": "User",没有密码或电子邮件的用户就无法拥有。

您可以在调用account函数之前添加isValid的外观吗?