Mik*_*liy 6 node.js sequelize.js
我正在使用 sequelize.js 构建一种多租户。从技术上讲,我需要按预定义的列和当前上下文的动态值过滤所有查询。一般想法是用来defaultScope过滤掉其他上下文,例如:
var context = () => { return "some current context id"; }
connection.define('kid', {
firstName: Sequelize.STRING,
photoUrl: Sequelize.STRING,
context: {
type: Sequelize.STRING,
defaultValue: context // this part works, it accepts function
}
}, {
defaultScope: {
where: {
context: context // this does not work, it does not accept function and values is defined only once
}
}
});
Run Code Online (Sandbox Code Playgroud)
但是这不起作用,因为它defaultScope是在应用程序启动时定义的。
这样做的正确方法是什么?
我不确定这会有帮助,但您可以随时覆盖模型默认范围。
let defaultScope = {
where: {
context: ""
}
};
defaultScope.where.context = context();
model.addScope('defaultScope',defaultScope,{override: true});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4995 次 |
| 最近记录: |