【发布时间】:2022-01-06 02:47:12
【问题描述】:
const getMe = await UserModel.scope("test").findOne({
where: {
uid: uid,
},
include: [
{
model: GroupModel,
as: "groups",
include: ["product"],
},
],
});
我正在尝试根据范围管理排除字段和允许字段。
defaultScope: {
attributes: {
exclude: ["id"],
},
},
scopes: {
test: {
atrributes: {
exclude: ["email"],
},
},
},
关联
UserModel.hasMany(GroupModel, { as: "groups" });
Groupmodel.belongsTo(UserModel, {
foreignKey: "userId",
as: "user",
});
GroupModel.belongsTo(ProductModel, {
foreignKey: "productId",
as: "product",
});
作为测试,我默认不包括“id”,并且在测试范围内我不包括“email”。我已经尝试了从exclude include 直接在findOne 调用中设置attributes 的所有内容。没有任何效果。
排除“公共”返回的某些字段并包含某种“管理范围”的所有字段的正确方法是什么?
【问题讨论】:
-
你的 Sequelize 是什么版本?
-
@UmerAbbas 是 6.12.0
标签: node.js postgresql scope sequelize.js