我想要创建和使用一些自定义的水系查询方法。
例如,方法makeItAwesome
Article.makeItAwesome({
id: 42
}).exec(function(err, awesomeArticle) {
/* ... */
});
当然,我可以将这个makeItAwesome
添加到模型的静态方法中,但是如果我希望其他模型可以重用一些常见的东西,该怎么办?sails.js或水线本身是否有内置的方法,还是我应该自己做呢?
如果不是,最好的办法是把这些东西保存在哪里?它必须是一个单独的模块,需要在每个模型中,或者我可以在某处扩展每个模型原型一次?
发布于 2015-01-26 18:51:46
您可以将您想要的方法放在一个公共js文件中的每个模型上,并使用lodash来使用这些默认值扩展模型。或者在定义模型时简单地引用导入的操作。
module.exports = _.extends(makeItAwsomeDefinition,{ thisModelDefinition })
-或者
可以将默认方法添加到config/models.js s.js文件中
-或者
如果您只使用蓝图,则可以创建自定义操作并将它们放入api/蓝图中。
-或者
我可能使用的一个更简单的方法是创建一个服务并将我的自定义方法放在那里。ModelMethodsService.makeItAwsome('MODELNAME',{structOfQueryParams})
参考资料
https://stackoverflow.com/questions/28137542
复制相似问题