将范围应用于beforeFind钩子

时间:2019-05-21 17:59:29

标签: sequelize.js

在钩子“ BeforeFind”中,我试图根据查找查询的选项中属性的值来应用范围。

如果未在选项中设置该值,则应使用默认范围。

我无法使其正常运行。这可能吗?如果可以,怎么办?

在使用以下查询时,应使用defaultScope:

testModel.findByPk(1)

在使用以下查询时,应使用“已过滤”范围:

testModel.findByPk(1, {filter: 'theValue'})

“已过滤”用户范围设置如下

function (value) {  
  if(value)
    return {
       include: {otherModel},
       where: {field: value}
    }

  return {
    include: {otherModel},
  }
}

在挂钩函数中,我已经尝试过

this.scope({method: ['filtered',options.filter]});

this.scope = this.scope({method: ['filtered',options.filter]});

我正在将Sequelize 5.8.5与NodeJS和mysql DB一起使用。

0 个答案:

没有答案