javascript - 在 native 钩子(Hook)之前加载可安装的钩子(Hook)

标签 javascript sails.js

我正在使用 sails-hook-sequelize 在我的 sails 应用程序中将sequelize 加载为 ORM。但是,我的 Controller 和策略设置(即仅创建它们的方法)取决于模型。我需要在运行 Controller 和策略 Hook 之前运行 sails-hook-sequelize 可安装 Hook (目前它是在之后运行的,并且 Controller /策略无法加载)。我怎样才能做到这一点?

提前致谢。

编辑:这里有一些代码来说明我想要完成的任务:

UserController.js

let Endpoint = require('../classes/Endpoint');

let endpoint = new Endpoint(User);

Object.assign(endpoint, {
    find
});

module.exports = endpoint;

function find(req, res, next) {
    User.findAll(
        {
            where: req.query,
            include: [
                {
                    model: Privilege,
                    include: [
                        {
                            model: Account,
                            where: {
                                accountPkey: {
                                    $in: AuthorizationService.accountsForPrivileges(req.tokenData.privileges, ['ADMINISTRATOR', 'OFFICE MANAGER'])
                                }
                            }
                        }
                    ]
                }
            ]
        })
        .then(users => res.ok(users))
        .catch(err => res.serverError(err));
}

基本上,我有一个默认的 Endpoint 类,我实例化该类,然后向其中添加方法。您可以看到 Endpoint 类采用模型参数。然而,当这个钩子(Hook)运行时,模型还不存在,因为它们是由第三方钩子(Hook)定义的(使用sequelize)。

最佳答案

目前无法在 Sails 中的核心钩子(Hook)之前运行第三方钩子(Hook)。

我经常看到这样的问题,这些问题来自于试图创建类似 Wordpress 的平台的人,他们假设对于最终用户创建的每个新“实体类型”(即博客、文章、评论)他们需要一个新模型。另一种方法是创建一个 Entity 模型,其中的 contents 属性是与 ContentEntityAttribute 的关联模型或多或少只是一个键/值存储。然后,您可以使用通配符路由让 EntityController 操作加载正确类型的实体。

关于javascript - 在 native 钩子(Hook)之前加载可安装的钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37072494/

相关文章:

javascript - Sails.js 中的复杂数据库查询

javascript - Ember JS 和迭代而不影响结果计数

postgresql - 高频调用导致 Waterline & Sails 中的 findOrCreate 重复

javascript - object.prototype===object.fn 历史

javascript - 无法在按钮提交处理程序中使用变量

javascript - 如何区分 '<li>'(无类/id)和 '<li class="hasClass">'?

node.js - SailsJs 调用 save 方法后没有任何反应

node.js - sails View 结构

javascript - 在浏览器中拉伸(stretch) Canvas 但保持内部尺寸

javascript - 禁用设备上的某些 Javascript