我想为水线创建并使用一些自定义查询方法。
例如方法makeItAwesome
:
Article.makeItAwesome({
id: 42
}).exec(function(err, awesomeArticle) {
/* ... */
});
当然,我可以将这个 makeItAwesome
添加到模型的静态方法中,但是如果我想要其他模型可重用的常见内容该怎么办。 sails.js 或 Waterline 本身是否有内置的方法来执行此操作,还是我应该自己执行?
如果不是,保存这些东西的最佳方法在哪里?它必须是每个模型中需要的单独模块,还是我可以在某个地方扩展每个模型原型(prototype)一次?
最佳答案
您可以将每个模型所需的方法放在一个公共(public) js 文件中,并使用 lodash 使用这些默认值扩展您的模型。或者在定义模型时简单地引用导入的操作。
module.exports = _.extends(makeItAwsomeDefinition, { thisModelDefinition })
-- 或 --
您可以将默认方法添加到 config/models.js 文件中
-- 或 --
如果您只使用蓝图,您可以创建自定义操作并将它们放入 api/blueprints
-- 或 --
我可能使用的一个更简单的方法是创建一个服务并将我的自定义方法放入其中。 ModelMethodsService.makeItAwsome('MODELNAME',{structOfQueryParams})
引用文献
关于javascript - 如何使用自定义查询方法延长水线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28137542/