如何使用自定义查询方法扩展水线
How to extend waterline with custom query methods?
我想为水线创建和使用一些自定义查询方法。
例如方法makeItAwesome
:
Article.makeItAwesome({
id: 42
}).exec(function(err, awesomeArticle) {
/* ... */
});
当然,我可以将此makeItAwesome
添加到模型的静态方法中,但是如果我希望其他模型可以重用常见内容怎么办。帆.js或吃水线本身是否有内置的方法,还是我应该自己做?
如果不是,保存这些东西的最佳方法在哪里?它必须是每个模型中需要的单独模块,还是我可以在某个地方扩展每个模型原型一次?
您可以将每个模型上所需的方法放在一个通用的 js 文件中,并使用 lodash 使用这些默认值扩展您的模型。或者只是在定义模型时引用导入的操作。
module.exports = _.extends(makeItAwsomeDefinition, { thisModelDefinition })
--或--
您可以将默认方法添加到配置/模型.js文件中
--或--
如果您只是使用蓝图,则可以创建自定义操作并将其放入 api/蓝图中
--或--
我可能使用的一种更简单的方法是创建一个服务并将我的自定义方法放在那里。ModelMethodsService.makeItAwsome('MODELNAME',{structOfQueryParams})
引用
- 模型/控制器原型继承
- 继承 Sails.js 模型的属性和生命周期功能
- 自定义蓝图操作
- 创建服务
相关文章:
- 为什么这个扩展方法不起作用
- 下划线扩展方法和结构.js子类
- 如何使用jQuery扩展方法为元素或类选择器创建自定义插件
- 在Javascript的UserControl.aspx中添加扩展方法
- 如何在没有临时变量的情况下扩展方法(猴子补丁)
- JavaScript 相当于 jQuery 的扩展方法
- Javascript/small Jquery扩展方法,用于自动更改Z-Indexes以将元素置于所有内容之上
- 如何定义扩展方法并将其作为实例和静态方法调用
- JS扩展方法的功能
- 在 Javascript 中扩展方法
- javascript's不同的扩展方法
- jQuery扩展方法,将select元素序列化为字典
- 如何用JavaScript编写扩展方法
- 使用jQuery扩展方法将函数与对象合并,为什么'只返回s的函数
- 从Javascript Visualforce调用扩展方法
- Javascript继承扩展方法提示
- ES6模块导出-DOM元素扩展方法
- 如何在字符串原型扩展方法中使用字符串方法
- 如何在javascript中扩展方法
- 用Javascript编写一个扩展方法