javascript - 如何使用自定义查询方法延长水线?

标签 javascript node.js orm sails.js waterline

我想为水线创建并使用一些自定义查询方法。

例如方法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/

相关文章:

javascript - 更改滚动上的导航事件类

symfony - 使用 Doctrine 的 PreUpdate 生命周期事件保留对文档所做的更改

java - 从数据库模式生成 CRUD 屏幕的最快的 Java 工具是什么?

python - Django Orm : Custom Select column with aggregate functions for grouped values

javascript - 如何更改 react native 按钮的背景颜色

javascript - indesign 中的 isPrototypeOf

javascript - 如何使用 JQUERY 在不刷新页面的情况下对 PHP 循环进行排序

javascript - Gulp less 然后缩小任务

node.js - Mongoose 从数组中删除子文档

node.js - OpenShift 上使用 Node.js、express 和 socket.io 的 Access-Control-Allow-Origin