Sailsjs:E_VALIDATION规则整数值应为整数

时间:2017-10-17 08:28:56

标签: node.js mongodb sails.js waterline

Sails版本:0.12 节点版本:6.11.4 NPM版本:3.10.0 数据库适配器名称:sails-mongo 数据库适配器版本:0.12 操作系统:Linux

我遇到integer类型的问题。如果我将其设置为integer,那么如果值为null,则会收到以下错误:

{"error":"E_VALIDATION","status":400,"summary":"1 attribute is invalid","model":"Test","invalidAttributes":{"test":[{"rule":"integer","message":"Value should be an integer"}]}}

我的模型配置:

test: {
      type: 'integer'
 }

由于我没有设置require验证程序,因此应接受null值。

如果我使用整数设置值或者使用包含整数的字符串,那么它可以正常工作。

我在这里做错了什么?或者如何在整数字段上允许null值?

链接到sailsjs上的问题:https://github.com/balderdashy/sails/issues/4215

1 个答案:

答案 0 :(得分:0)

好的修复。问题是在验证之前,该值是NaN。也许这个值来自前端输入字段或整数验证之后。无论如何,通过在验证中添加此检查它可以正常工作: if (isNaN(attrs.test)) attrs.test = null;