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

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

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

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

我试图用这个代码创build:

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

另外,如果一个关系/关联到另一个模型,不应该创build失败,如果实体ID指向一个无效的实体?

也许我在validation过程中遗漏了一些东西,但到目前为止,这种行为对我来说似乎有点奇怪,如果水线有复合主键支持,那也不错。

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

Doc说:

在支持无模式数据结构的数据库中切换无模式或模式模式的标志。 如果closures,这将允许您将任意数据存储在logging中。 如果打开,只会存储模型属性对象中定义的属性。 对于不需要模式的适配器(如Mongo或Redis),默认设置是schema:false。

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