如果实体创建包含未在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有复合主键支持也会很好。
答案 0 :(得分:3)
您可以尝试将schema : true
放在config / models.js
在支持无模式数据结构的数据库中切换无模式或模式模式的标志。如果关闭,这将允许您在记录中存储任意数据。如果启用,则仅存储模型属性对象中定义的属性。 对于不需要架构的适配器,例如Mongo或Redis,默认设置为schema:false。
http://sailsjs.org/#!/documentation/concepts/ORM/model-settings.html