SailsJS:如果它具有未声明的属性,则阻止Model.create()

时间:2015-03-27 12:03:37

标签: node.js mongodb sails.js waterline sails-mongo

如果实体创建包含未在api / models / YourModel中声明的属性,是否有办法阻止实体创建?

例如,假设我使用了MongoDB,我有这个User模型:

module.exports = {
  attributes: {
    name:{type:'string'},
    age:{type:'number'}
  }
};

我尝试使用此代码.create

User.create({name:'Walter Jr',age:8,missingTest:'something'}).exec(function createCB(err,created){
  console.log('should fail');
});

此外,如果a与另一个模型有关系/关联,如果实体id指向无效实体,那么创建是否也应该失败?

也许我在验证过程中遗漏了一些东西,但到目前为止我的行为似乎有点奇怪,如果waterline有复合主键支持也会很好。

1 个答案:

答案 0 :(得分:3)

您可以尝试将schema : true放在config / models.js

下 医生说:

  

在支持无模式数据结构的数据库中切换无模式或模式模式的标志。如果关闭,这将允许您在记录中存储任意数据。如果启用,则仅存储模型属性对象中定义的属性。   对于不需要架构的适配器,例如Mongo或Redis,默认设置为schema:false。

http://sailsjs.org/#!/documentation/concepts/ORM/model-settings.html