【问题标题】:remove invalidAttributes in sails删除风帆中的无效属性
【发布时间】:2015-09-01 18:11:18
【问题描述】:

我正在使用sails(v0.11)

我在我的应用程序中安装了sails-hook-validation

validationMessages: {
    email: {
      required: 'Email is required',
      email: 'Provide valid email address',
      unique: 'Email address is already taken'
    },
    username: {
      required: 'Username is required'
    }
}

并将上面的代码添加到我的模型中。

如果我发送无效的email,我会收到以下错误消息

{
  "error": "E_VALIDATION",
  "status": 400,
  "summary": "1 attribute is invalid",
  "model": "User",
  "invalidAttributes": {
    "email": [
      {
        "rule": "email",
        "message": "`undefined` should be a email (instead of \"vishnu@ad\", which is a string)"
      }
    ]
  },
  "Errors": {
    "email": [
      {
        "rule": "email",
        "message": "Provide valid email address"
      }
    ]
  }
}

正如您看到的错误消息,我收到了invalidAttributesErrors。如何删除invalidAttributes

我应该如何在我的 Sails 应用中配置以删除 invalidAttributes

【问题讨论】:

  • 您可以将其从 responses/badRequest.js 或任何其他响应文件中的错误中删除 - 检查数据是否为 ​​Error 实例,以及是否为E_VALIDATION,只需将 invalidAttributes 设置为 nulldelete 即可。
  • 为每个请求删除 invalidAttributes 可能不好。必须有一些配置才能删除它。
  • 为什么要有?这就是 Waterline 告诉您数据出了什么问题的方式。即使 sails-hook-validation 确实提供了一个配置选项,它也会做与我刚才提议的完全相同的事情。

标签: node.js sails.js


【解决方案1】:

修改响应文件夹中的 badRequest.js。

例如:

```//remove unnecessary keys if debug is false
  if(process.env.APP_DEBUG === 'false'){
    delete data.stack;
    delete data.rawStack;
    delete data.details;
    delete data.message;
    delete data.model;
    delete data._e;
    delete data.reason;
  }```

【讨论】:

    猜你喜欢
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 2014-07-17
    • 1970-01-01
    • 2021-11-14
    • 2018-02-03
    • 2011-11-03
    相关资源
    最近更新 更多