【发布时间】:2020-10-07 21:53:02
【问题描述】:
我有一个名为 Product 的模型。 我想为这个模型配置全面的过滤。
例如:sails.config.field = 2;
当我执行 GET /Product 时,我希望它本质上执行 GET /Product?where={"field": 2}
以上通过添加策略适用于蓝图,但我希望在使用水线 ORM 时行为一致
获取/产品 和 Product.find() 应该返回相同的东西。
我可以覆盖模型:Product.find,它会完美运行...如果我可以通过某种方式访问底层查找代码。
我用来截取蓝图的代码是:
if (!req.query.where) {
req.query.where = `{"status":{">":0,">=":${sails.config.catalogVersions.status}}}`;
} else {
const parsedWhere = JSON.parse(req.query.where);
parsedWhere.status = {
'>': 0,
'>=': sails.config.catalogVersions.status,
};
req.query.where = JSON.stringify(parsedWhere);
}
我可以很容易地将它应用到 Model.find 拦截器。
是否有任何方法可以在加载sails 后访问模型上的root find 方法,即使它在加载时被覆盖?
【问题讨论】: