Javascript 如何使用自定义查询方法扩展waterline?
我想为waterline创建和使用一些自定义查询方法 例如,方法Javascript 如何使用自定义查询方法扩展waterline?,javascript,node.js,orm,sails.js,waterline,Javascript,Node.js,Orm,Sails.js,Waterline,我想为waterline创建和使用一些自定义查询方法 例如,方法makeItAwesome: Article.makeItAwesome({ id: 42 }).exec(function(err, awesomeArticle) { /* ... */ }); 当然,我可以将这个makeItAwesome添加到模型的静态方法中,但是如果我想让普通的东西可用于其他模型呢。sails.js或waterline本身有内置的方法吗?还是我应该自己做 如果不是的话,保存这些东西的最好方
makeItAwesome
:
Article.makeItAwesome({
id: 42
}).exec(function(err, awesomeArticle) {
/* ... */
});
当然,我可以将这个makeItAwesome
添加到模型的静态方法中,但是如果我想让普通的东西可用于其他模型呢。sails.js或waterline本身有内置的方法吗?还是我应该自己做
如果不是的话,保存这些东西的最好方法是什么?每个模型都需要单独的模块,或者我可以在某个地方扩展每个模型原型一次?您可以在公共js文件中为每个模型添加所需的方法,并使用lodash以这些默认值扩展您的模型。或者在定义模型时简单地引用导入的操作 module.exports=..extends(makeItAwsomeDefinition,{thisModelDefinition}) --或-- 您可以将默认方法添加到config/models.js文件中 --或-- 如果您只使用蓝图,您可以创建自定义操作并将它们放入api/蓝图中 --或-- 我可能会使用一种更简单的方法,即创建一个服务并将自定义方法放在其中。ModelMethodsService.makeItAwsome('MODELNAME',{structOfQueryParams}) 参考资料