使用
config/models.js为模型提供全局默认值是完全合法的。关于覆盖实例和类方法,根据我的测试,没有什么值得关注的。定义
sails.config.models模型定义中存在的属性/方法将对此模型覆盖它,而未定义则不会。
定义 :
// config/models.jsmodule.exports.models = { attributes: { // base model instanceMethod toJSON: function() { console.log('base.toJSON'); return this.toObject(); } }, // base model classMethod test: function() { console.log('base.test'); }};// api/models/first.jsmodule.exports = { attributes: { }, // Overriding classMethods and lifecycle callbacks test: function() { console.log('first.test'); }};// api/models/second.jsmodule.exports = { attributes: { // Overriding instance methods and attributes toJSON: function() { console.log('second.toJSON'); return this.toObject(); } },}测验
> sails.models.first.test();>'first.test' // sails.config.models.test overridden> sails.models.first.findOne(1).exec(err,res){ res.toJSON(); });> 'base.toJSON' // sails.config.models.attributes.toJSON not overridden> sails.models.second.test();> 'base.test'; // sails.config.models.test not overridden> sails.models.second.findOne(1).exec(err,res) { res.toJSON(); });> 'second.toJSON' // sails.config.models.attributes.toJSON overridden


