SailsJS阻止不需要的数据进入数据库

时间:2014-01-08 22:58:54

标签: javascript database node.js sails.js

因此,使用sailsJS,您可以将任何旧数据放入模型中,并将其放入数据库中,即使该项未在attributes对象中定义。

有没有办法防止这种情况发生?尝试做一个if然后抛出错误似乎很愚蠢,因为有太多事情要阻止它通过。

例如,我刚遇到问题,我有一个用户列表,我在前端通过角度ng-repeat显示它们,当我put数据保存用户时还决定"$$hashKey": "00I"也与他们一起

因此它会自动保存到数据库中,当我刷新并再次获取数据时,"$$hashKey": "00I"将返回,从而导致此错误

  

错误:[ngRepeat:dupes]不允许在转发器中重复。使用'track by'       表达式以指定唯一键。       转发器:管理员中的(键,用户)| filter:userSearch,Duplicate key:object:00I

这来自棱角分明。

PS。

  

据我所知,服务器正在使用默认的sails-disk

1 个答案:

答案 0 :(得分:4)

Sails.js模型的默认模式是无模式的,可能不是您需要的模式。因此,您所要做的就是为模型添加模式:

module.exports = {
 schema: true,

 attributes: {
   // Define all your attributes here...
 }
};

之后,attributes中未描述的所有值将在模型保存期间自动过滤掉。